Skip to content

Commit 35553e5

Browse files
Rename project to microsoft-signalr and add find_package cmake support (#52)
1 parent fdbf36d commit 35553e5

File tree

6 files changed

+47
-23
lines changed

6 files changed

+47
-23
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
44
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
55
endif()
66

7-
project (signalrclient)
7+
project (microsoft-signalr)
88

99
include(CTest)
1010

README.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,8 @@ stop_task.get_future().get();
110110
cmake_minimum_required (VERSION 3.5)
111111
project (signalrclient-sample)
112112
113-
find_path(SIGNALR_INCLUDE_DIR signalrclient/hub_connection.h)
114-
include_directories(${SIGNALR_INCLUDE_DIR})
115-
116-
find_library(SIGNALR_LIBRARY NAMES signalrclient PATHS {SIGNALR_INCLUDE_DIR} REQUIRED)
117-
link_libraries(${SIGNALR_LIBRARY})
113+
find_package(microsoft-signalr REQUIRED)
114+
link_libraries(microsoft-signalr::microsoft-signalr)
118115
119116
add_executable (sample sample.cpp)
120117
```

samples/HubConnectionSample/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ include_directories(
77

88
add_executable (HubConnectionSample ${SOURCES})
99

10-
target_link_libraries(HubConnectionSample signalrclient)
10+
target_link_libraries(HubConnectionSample microsoft-signalr)

src/signalrclient/CMakeLists.txt

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3333
if(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
)
5252
else()
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)
6161
endif()
6262

6363
if(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)
6666
else()
67-
target_link_libraries(signalrclient PUBLIC ${JSONCPP_LIB})
67+
target_link_libraries(microsoft-signalr PUBLIC ${JSONCPP_LIB})
6868
endif()
6969

7070
if(NOT USE_CPPRESTSDK)
71-
target_link_libraries(signalrclient)
71+
target_link_libraries(microsoft-signalr)
7272
else()
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()
8888
endif() # USE_CPPRESTSDK
8989

9090
include(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
)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
if(@USE_CPPRESTSDK@)
4+
find_dependency(cpprestsdk)
5+
endif()
6+
7+
if(NOT @INCLUDE_JSONCPP@)
8+
find_dependency(@JSONCPP_LIB@)
9+
endif()
10+
11+
include("${CMAKE_CURRENT_LIST_DIR}/microsoft-signalr-targets.cmake")

test/signalrclienttests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ include_directories(
2525

2626
add_executable (signalrclienttests ${SOURCES})
2727

28-
target_link_libraries(signalrclienttests gtest signalrclient)
28+
target_link_libraries(signalrclienttests gtest microsoft-signalr)
2929
add_test(NAME signalrclienttests COMMAND signalrclienttests)

0 commit comments

Comments
 (0)