Skip to content
Snippets Groups Projects
Commit dd182cd0 authored by Eidolon's avatar Eidolon
Browse files

cmake: Separate cpm discordrpc setup

parent ac7ca100
Branches
Tags
No related merge requests found
......@@ -209,85 +209,11 @@ if(NOT "${SRB2_CONFIG_SYSTEM_LIBRARIES}")
)
target_compile_features(gme PRIVATE cxx_std_11)
target_link_libraries(gme PRIVATE ZLIB::ZLIB)
endif()
CPMAddPackage(
NAME RapidJSON
VERSION 1.1.0
URL "https://github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz"
EXCLUDE_FROM_ALL ON
DOWNLOAD_ONLY ON
)
if(RapidJSON_ADDED)
add_library(RapidJSON INTERFACE)
add_library(RapidJSON::RapidJSON ALIAS RapidJSON)
target_include_directories(RapidJSON INTERFACE "${RapidJSON_SOURCE_DIR}/include")
endif()
CPMAddPackage(
NAME DiscordRPC
VERSION 3.4.0
URL "https://github.com/discord/discord-rpc/archive/refs/tags/v3.4.0.zip"
EXCLUDE_FROM_ALL ON
DOWNLOAD_ONLY ON
)
if(DiscordRPC_ADDED)
set(DiscordRPC_SOURCES
include/discord_rpc.h
include/discord_register.h
src/discord_rpc.cpp
src/rpc_connection.h
src/rpc_connection.cpp
src/serialization.h
src/serialization.cpp
src/connection.h
src/backoff.h
src/msg_queue.h
)
list(TRANSFORM DiscordRPC_SOURCES PREPEND "${DiscordRPC_SOURCE_DIR}/")
# Discord RPC is always statically linked because it's tiny.
add_library(discord-rpc STATIC ${DiscordRPC_SOURCES})
add_library(DiscordRPC::DiscordRPC ALIAS discord-rpc)
target_include_directories(discord-rpc PUBLIC "${DiscordRPC_SOURCE_DIR}/include")
target_compile_features(discord-rpc PUBLIC cxx_std_11)
target_link_libraries(discord-rpc PRIVATE RapidJSON::RapidJSON)
# Platform-specific connection and register impls
if(WIN32)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_WINDOWS)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/connection_win.cpp"
"${DiscordRPC_SOURCE_DIR}/src/discord_register_win.cpp"
)
target_link_libraries(discord-rpc PRIVATE psapi advapi32)
endif()
if(UNIX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/connection_unix.cpp"
)
if(APPLE)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_OSX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/discord_register_osx.m"
)
target_link_libraries(discord-rpc PUBLIC "-framework AppKit")
endif()
if(UNIX AND NOT APPLE)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_LINUX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/discord_register_linux.cpp"
)
endif()
endif()
endif()
include("cpm-rapidjson.cmake")
include("cpm-discordrpc.cmake")
include("cpm-xmp-lite.cmake")
add_subdirectory(tcbrindle_span)
......
CPMAddPackage(
NAME DiscordRPC
VERSION 3.4.0
URL "https://github.com/discord/discord-rpc/archive/refs/tags/v3.4.0.zip"
EXCLUDE_FROM_ALL ON
DOWNLOAD_ONLY ON
)
if(DiscordRPC_ADDED)
set(DiscordRPC_SOURCES
include/discord_rpc.h
include/discord_register.h
src/discord_rpc.cpp
src/rpc_connection.h
src/rpc_connection.cpp
src/serialization.h
src/serialization.cpp
src/connection.h
src/backoff.h
src/msg_queue.h
)
list(TRANSFORM DiscordRPC_SOURCES PREPEND "${DiscordRPC_SOURCE_DIR}/")
# Discord RPC is always statically linked because it's tiny.
add_library(discord-rpc STATIC ${DiscordRPC_SOURCES})
add_library(DiscordRPC::DiscordRPC ALIAS discord-rpc)
target_include_directories(discord-rpc PUBLIC "${DiscordRPC_SOURCE_DIR}/include")
target_compile_features(discord-rpc PUBLIC cxx_std_11)
target_link_libraries(discord-rpc PRIVATE RapidJSON::RapidJSON)
# Platform-specific connection and register impls
if(WIN32)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_WINDOWS)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/connection_win.cpp"
"${DiscordRPC_SOURCE_DIR}/src/discord_register_win.cpp"
)
target_link_libraries(discord-rpc PRIVATE psapi advapi32)
endif()
if(UNIX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/connection_unix.cpp"
)
if(APPLE)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_OSX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/discord_register_osx.m"
)
target_link_libraries(discord-rpc PUBLIC "-framework AppKit")
endif()
if(UNIX AND NOT APPLE)
target_compile_definitions(discord-rpc PUBLIC -DDISCORD_LINUX)
target_sources(discord-rpc PRIVATE
"${DiscordRPC_SOURCE_DIR}/src/discord_register_linux.cpp"
)
endif()
endif()
endif()
CPMAddPackage(
NAME RapidJSON
VERSION 1.1.0
URL "https://github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz"
EXCLUDE_FROM_ALL ON
DOWNLOAD_ONLY ON
)
if(RapidJSON_ADDED)
add_library(RapidJSON INTERFACE)
add_library(RapidJSON::RapidJSON ALIAS RapidJSON)
target_include_directories(RapidJSON INTERFACE "${RapidJSON_SOURCE_DIR}/include")
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment