1
1
cmake_minimum_required (VERSION 3.1.0 FATAL_ERROR)
2
2
PROJECT (sioclient)
3
3
4
- function (get_lib_name out_lib_name component )
5
- if (MSVC )
6
- set (${out_lib_name} "${component} .lib" PARENT_SCOPE)
7
- else ()
8
- set (${out_lib_name} "lib${component} .a" PARENT_SCOPE)
9
- endif ()
10
- endfunction ()
11
-
12
- function (install_debug_libs lib_dir)
13
- get_lib_name(renamed_system "boost_system" )
14
- install (FILES ${Boost_SYSTEM_LIBRARY_DEBUG}
15
- CONFIGURATIONS "Debug" DESTINATION ${lib_dir} RENAME ${renamed_system}
16
- )
17
- get_lib_name(renamed_date_time "boost_date_time" )
18
- install (FILES ${Boost_DATE_TIME_LIBRARY_DEBUG}
19
- CONFIGURATIONS "Debug" DESTINATION ${lib_dir} RENAME ${renamed_date_time}
20
- )
21
- get_lib_name(renamed_random "boost_random" )
22
- install (FILES ${Boost_RANDOM_LIBRARY_DEBUG}
23
- CONFIGURATIONS "Debug" DESTINATION ${lib_dir} RENAME ${renamed_random}
24
- )
25
-
26
- install (TARGETS sioclient
27
- CONFIGURATIONS "Debug" DESTINATION ${lib_dir}
28
- )
29
- endfunction ()
30
-
31
- function (install_release_libs lib_dir)
32
- get_lib_name(renamed_system "boost_system" )
33
- install (FILES ${Boost_SYSTEM_LIBRARY_RELEASE}
34
- CONFIGURATIONS "Release" DESTINATION ${lib_dir} RENAME ${renamed_system}
35
- )
36
- get_lib_name(renamed_date_time "boost_date_time" )
37
- install (FILES ${Boost_DATE_TIME_LIBRARY_RELEASE}
38
- CONFIGURATIONS "Release" DESTINATION ${lib_dir} RENAME ${renamed_date_time}
39
- )
40
- get_lib_name(renamed_random "boost_random" )
41
- install (FILES ${Boost_RANDOM_LIBRARY_RELEASE}
42
- CONFIGURATIONS "Release" DESTINATION ${lib_dir} RENAME ${renamed_random}
43
- )
44
-
45
- install (TARGETS sioclient
46
- CONFIGURATIONS "Release" DESTINATION ${lib_dir}
47
- )
48
- endfunction ()
49
-
50
-
51
- MESSAGE (STATUS ${CMAKE_CURRENT_LIST_DIR} )
52
4
if (NOT CMAKE_BUILD_TYPE )
53
5
MESSAGE (STATUS "not define build type, set to release" )
54
6
set (CMAKE_BUILD_TYPE Release )
@@ -67,7 +19,7 @@ find_package(Boost ${BOOST_VER} REQUIRED COMPONENTS system date_time random)
67
19
aux_source_directory (${CMAKE_CURRENT_LIST_DIR} /src ALL_SRC)
68
20
aux_source_directory (${CMAKE_CURRENT_LIST_DIR} /src/internal ALL_SRC)
69
21
file (GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR} /src/*.h )
70
- MESSAGE ( STATUS ${ALL_HEADERS} )
22
+ set (SIO_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR} )
71
23
72
24
add_library (sioclient STATIC ${ALL_SRC} )
73
25
target_include_directories (sioclient PRIVATE ${Boost_INCLUDE_DIRS}
@@ -79,12 +31,32 @@ target_include_directories(sioclient PRIVATE ${Boost_INCLUDE_DIRS}
79
31
set_property (TARGET sioclient PROPERTY CXX_STANDARD 11)
80
32
set_property (TARGET sioclient PROPERTY CXX_STANDARD_REQUIRED ON )
81
33
target_link_libraries (sioclient PRIVATE ${Boost_LIBRARIES} )
34
+
35
+ find_package (OpenSSL)
36
+ if (OPENSSL_FOUND)
37
+ add_library (sioclient_tls STATIC ${ALL_SRC} )
38
+ target_include_directories (sioclient_tls PRIVATE ${Boost_INCLUDE_DIRS}
39
+ ${CMAKE_CURRENT_LIST_DIR} /src
40
+ ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
41
+ ${CMAKE_CURRENT_LIST_DIR} /lib/rapidjson/include
42
+ ${OPENSSL_INCLUDE_DIR}
43
+ )
44
+
45
+ set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD 11)
46
+ set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD_REQUIRED ON )
47
+ target_link_libraries (sioclient_tls PRIVATE ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} )
48
+ target_compile_definitions (sioclient_tls PRIVATE -DSIO_TLS)
49
+
50
+ endif ()
51
+
82
52
install (FILES ${ALL_HEADERS}
83
53
DESTINATION "${CMAKE_CURRENT_LIST_DIR} /build/include"
84
- )
54
+ )
85
55
86
- if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
87
- install_debug_libs("${CMAKE_CURRENT_LIST_DIR} /build/lib/${CMAKE_BUILD_TYPE} " )
88
- else ()
89
- install_release_libs("${CMAKE_CURRENT_LIST_DIR} /build/lib/${CMAKE_BUILD_TYPE} " )
90
- endif ()
56
+ install (TARGETS sioclient
57
+ DESTINATION "${CMAKE_CURRENT_LIST_DIR} /build/lib/${CMAKE_BUILD_TYPE} "
58
+ )
59
+
60
+ install (FILES ${Boost_LIBRARIES}
61
+ DESTINATION "${CMAKE_CURRENT_LIST_DIR} /build/lib/${CMAKE_BUILD_TYPE} "
62
+ )
0 commit comments