--- src/CMakeLists.txt.orig 2018-11-27 12:19:14.000000000 -0500 +++ src/CMakeLists.txt 2021-12-28 00:36:54.000000000 -0500 @@ -69,10 +69,21 @@ add_definitions(-DDISCORD_LINUX) set(BASE_RPC_SRC ${BASE_RPC_SRC} discord_register_linux.cpp) endif(APPLE) +endif(UNIX) - add_library(discord-rpc ${BASE_RPC_SRC}) - target_link_libraries(discord-rpc PUBLIC pthread) - target_compile_options(discord-rpc PRIVATE +foreach(libtype shared static) + string(TOUPPER ${libtype} libtype_upper) + if(${libtype} STREQUAL "static") + set(suffix _${libtype}) + else() + set(suffix "") + endif() + +if(UNIX) + add_library(discord-rpc${suffix} ${libtype_upper} ${BASE_RPC_SRC}) + set_target_properties(discord-rpc${suffix} PROPERTIES OUTPUT_NAME discord-rpc) + target_link_libraries(discord-rpc${suffix} PUBLIC pthread) + target_compile_options(discord-rpc${suffix} PRIVATE -g -Wall -Wextra @@ -80,10 +91,10 @@ ) if (${WARNINGS_AS_ERRORS}) - target_compile_options(discord-rpc PRIVATE -Werror) + target_compile_options(discord-rpc${suffix} PRIVATE -Werror) endif (${WARNINGS_AS_ERRORS}) - target_compile_options(discord-rpc PRIVATE + target_compile_options(discord-rpc${suffix} PRIVATE -Wno-unknown-pragmas # pragma push thing doesn't work on clang -Wno-old-style-cast # it's fine -Wno-c++98-compat # that was almost 2 decades ago @@ -95,34 +106,34 @@ -Wno-global-constructors ) - if (${BUILD_SHARED_LIBS}) - target_compile_options(discord-rpc PRIVATE -fPIC) - endif (${BUILD_SHARED_LIBS}) + if (${libtype} STREQUAL "shared") + target_compile_options(discord-rpc${suffix} PRIVATE -fPIC) + endif (${libtype}) if (APPLE) - target_link_libraries(discord-rpc PRIVATE "-framework AppKit") + target_link_libraries(discord-rpc${suffix} PRIVATE "-framework AppKit") endif (APPLE) endif(UNIX) -target_include_directories(discord-rpc PRIVATE ${RAPIDJSON}/include) +target_include_directories(discord-rpc${suffix} PRIVATE ${RAPIDJSON}/include) if (NOT ${ENABLE_IO_THREAD}) - target_compile_definitions(discord-rpc PUBLIC -DDISCORD_DISABLE_IO_THREAD) + target_compile_definitions(discord-rpc${suffix} PUBLIC -DDISCORD_DISABLE_IO_THREAD) endif (NOT ${ENABLE_IO_THREAD}) -if (${BUILD_SHARED_LIBS}) - target_compile_definitions(discord-rpc PUBLIC -DDISCORD_DYNAMIC_LIB) - target_compile_definitions(discord-rpc PRIVATE -DDISCORD_BUILDING_SDK) -endif(${BUILD_SHARED_LIBS}) +if (${libtype} STREQUAL "shared") + target_compile_definitions(discord-rpc${suffix} PUBLIC -DDISCORD_DYNAMIC_LIB) + target_compile_definitions(discord-rpc${suffix} PRIVATE -DDISCORD_BUILDING_SDK) +endif(${libtype}) if (CLANG_FORMAT_CMD) - add_dependencies(discord-rpc clangformat) + add_dependencies(discord-rpc${suffix} clangformat) endif(CLANG_FORMAT_CMD) # install install( - TARGETS discord-rpc + TARGETS discord-rpc${suffix} EXPORT "discord-rpc" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" @@ -134,6 +145,8 @@ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) +endforeach(libtype) + install( FILES "../include/discord_rpc.h"