@@ -28,16 +28,16 @@ include_directories(
2828 ../../third_party_code/cpprestsdk
2929)
3030
31- add_library (signalrclient ${SOURCES} )
31+ add_library (microsoft-signalr ${SOURCES} )
3232
3333if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
3434 if (WERROR)
35- target_compile_options (signalrclient PRIVATE /WX)
35+ target_compile_options (microsoft-signalr PRIVATE /WX)
3636 endif ()
3737 if (WALL)
38- target_compile_options (signalrclient PRIVATE /Wall)
38+ target_compile_options (microsoft-signalr PRIVATE /Wall)
3939 endif ()
40- target_compile_options (signalrclient PRIVATE
40+ target_compile_options (microsoft-signalr PRIVATE
4141 /wd4820 # padding added after data member
4242 /wd4514 # unreferenced inline function removed
4343 /wd5045 # compiler will insert Spectre mitigation if /Qspectre switch is added
@@ -51,46 +51,62 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
5151 )
5252else ()
5353 if (WERROR)
54- target_compile_options (signalrclient PRIVATE -Werror)
54+ target_compile_options (microsoft-signalr PRIVATE -Werror)
5555 endif ()
5656 if (WALL)
57- target_compile_options (signalrclient PRIVATE -Wall)
57+ target_compile_options (microsoft-signalr PRIVATE -Wall)
5858 endif ()
5959
60- target_compile_options (signalrclient PRIVATE -Wextra -Wpedantic -Wno-unknown-pragmas)
60+ target_compile_options (microsoft-signalr PRIVATE -Wextra -Wpedantic -Wno-unknown-pragmas)
6161endif ()
6262
6363if (INCLUDE_JSONCPP)
64- target_sources (signalrclient PRIVATE ../../third_party_code/jsoncpp/jsoncpp.cpp)
65- target_include_directories (signalrclient PRIVATE ../../third_party_code/jsoncpp)
64+ target_sources (microsoft-signalr PRIVATE ../../third_party_code/jsoncpp/jsoncpp.cpp)
65+ target_include_directories (microsoft-signalr PRIVATE ../../third_party_code/jsoncpp)
6666else ()
67- target_link_libraries (signalrclient PUBLIC ${JSONCPP_LIB} )
67+ target_link_libraries (microsoft-signalr PUBLIC ${JSONCPP_LIB} )
6868endif ()
6969
7070if (NOT USE_CPPRESTSDK)
71- target_link_libraries (signalrclient )
71+ target_link_libraries (microsoft-signalr )
7272else ()
7373 if (APPLE )
74- target_link_libraries (signalrclient
74+ target_link_libraries (microsoft-signalr
7575 PUBLIC ${CPPREST_LIB}
7676 PRIVATE OpenSSL::SSL Boost::boost Boost::system Boost::chrono Boost::thread
7777 )
7878 elseif (NOT WIN32 )
79- target_link_libraries (signalrclient
79+ target_link_libraries (microsoft-signalr
8080 PUBLIC ${CPPREST_LIB} Boost::system
8181 PRIVATE OpenSSL::SSL
8282 )
8383 else ()
84- target_link_libraries (signalrclient
84+ target_link_libraries (microsoft-signalr
8585 PUBLIC ${CPPREST_LIB}
8686 )
8787 endif ()
8888endif () # USE_CPPRESTSDK
8989
9090include (GNUInstallDirs)
9191
92- install (TARGETS signalrclient
92+ install (TARGETS microsoft-signalr
93+ # Creates the microsoft-signalr-targets.cmake file which allows find_package() to work
94+ EXPORT microsoft-signalr-targets
9395 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
9496 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
9597 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
98+ )
99+
100+ # Create the microsoft-signalr-config.cmake with resolved values for variables used to build
101+ configure_file (microsoft-signalr-config.in.cmake "${CMAKE_CURRENT_BINARY_DIR} /microsoft-signalr-config.cmake" @ONLY)
102+
103+ install (
104+ FILES ${CMAKE_CURRENT_BINARY_DIR} /microsoft-signalr-config.cmake
105+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /share/microsoft-signalr
106+ )
107+
108+ install (EXPORT microsoft-signalr-targets
109+ FILE microsoft-signalr-targets.cmake
110+ NAMESPACE microsoft-signalr::
111+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /share/microsoft-signalr
96112)
0 commit comments