1
1
cmake_minimum_required (VERSION 3.4 FATAL_ERROR)
2
- PROJECT (sioclient)
2
+ PROJECT (sioclient
3
+ VERSION 3.1.0
4
+ )
3
5
4
6
option (BUILD_SHARED_LIBS "Build the shared library" OFF )
5
- option (BUILD_UNIT_TESTS "Builds unit tests target" OFF )
6
-
7
- set (MAJOR 1)
8
- set (MINOR 6)
9
- set (PATCH 0)
10
-
11
- if (NOT CMAKE_BUILD_TYPE )
12
- MESSAGE (STATUS "not define build type, set to release" )
13
- set (CMAKE_BUILD_TYPE Release )
14
- elseif (NOT (${CMAKE_BUILD_TYPE} STREQUAL "Release" OR ${CMAKE_BUILD_TYPE} STREQUAL "Debug" ))
15
- MESSAGE (SEND_ERROR "CMAKE_BUILD_TYPE must be either Release or Debug" )
16
- return ()
17
- endif ()
7
+ option (BUILD_UNIT_TESTS "Builds unit tests target" OFF )
8
+
9
+ if (NOT EXISTS ${CMAKE_SOURCE_DIR} /lib/asio/asio/README)
10
+ message ("Updating submodules" )
11
+ execute_process (
12
+ COMMAND git submodule update --init
13
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
14
+ endif ()
18
15
19
16
if (NOT EXISTS ${CMAKE_SOURCE_DIR} /lib/asio/asio/README)
20
17
message ("Updating submodules" )
@@ -25,84 +22,87 @@ endif()
25
22
26
23
aux_source_directory (${CMAKE_CURRENT_LIST_DIR} /src ALL_SRC)
27
24
aux_source_directory (${CMAKE_CURRENT_LIST_DIR} /src/internal ALL_SRC)
28
- file (GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR} /src/*.h )
29
- set (SIO_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR} )
25
+
26
+ file (GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR} /src/*.h )
30
27
31
28
add_definitions (
32
- # These will force ASIO to compile without Boost
33
- -DBOOST_DATE_TIME_NO_LIB
34
- -DBOOST_REGEX_NO_LIB
35
- -DASIO_STANDALONE
36
- # These will force WebsocketPP to compile with C++11
37
- -D_WEBSOCKETPP_CPP11_STL_
38
- -D_WEBSOCKETPP_CPP11_FUNCTIONAL_
29
+ # These will force ASIO to compile without Boost
30
+ -DBOOST_DATE_TIME_NO_LIB
31
+ -DBOOST_REGEX_NO_LIB
32
+ -DASIO_STANDALONE
33
+ # These will force WebsocketPP to compile with C++11
34
+ -D_WEBSOCKETPP_CPP11_STL_
35
+ -D_WEBSOCKETPP_CPP11_FUNCTIONAL_
39
36
)
40
37
41
38
add_library (sioclient ${ALL_SRC} )
42
- target_include_directories (sioclient PRIVATE
43
- ${CMAKE_CURRENT_LIST_DIR} /src
44
- ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
45
- ${CMAKE_CURRENT_LIST_DIR} /lib/rapidjson/include
46
- ${CMAKE_CURRENT_LIST_DIR} /lib/asio/asio/include
47
- )
39
+
40
+ target_include_directories (sioclient PRIVATE
41
+ ${CMAKE_CURRENT_LIST_DIR} /src
42
+ ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
43
+ ${CMAKE_CURRENT_LIST_DIR} /lib/rapidjson/include
44
+ ${CMAKE_CURRENT_LIST_DIR} /lib/asio/asio/include
45
+ )
48
46
49
47
if (CMAKE_VERSION VERSION_GREATER "3.1" )
50
- set_property (TARGET sioclient PROPERTY CXX_STANDARD 11)
51
- set_property (TARGET sioclient PROPERTY CXX_STANDARD_REQUIRED ON )
52
- else ()
53
- set_property (TARGET sioclient APPEND_STRING PROPERTY COMPILE_FLAGS "-std=c++11" )
54
- endif ()
55
- if (BUILD_SHARED_LIBS )
56
- set_target_properties (sioclient
57
- PROPERTIES
58
- SOVERSION ${MAJOR}
59
- VERSION ${MAJOR} .${MINOR} .${PATCH}
60
- )
61
- endif ()
48
+ set_property (TARGET sioclient PROPERTY CXX_STANDARD 11)
49
+ set_property (TARGET sioclient PROPERTY CXX_STANDARD_REQUIRED ON )
50
+ else ()
51
+ set_property (TARGET sioclient APPEND_STRING PROPERTY COMPILE_FLAGS "-std=c++11" )
52
+ endif ()
53
+
54
+ if (BUILD_SHARED_LIBS )
55
+ set_target_properties (sioclient
56
+ PROPERTIES
57
+ SOVERSION ${MAJOR}
58
+ VERSION ${MAJOR} .${MINOR} .${PATCH}
59
+ )
60
+ endif ()
61
+
62
62
list (APPEND TARGET_LIBRARIES sioclient)
63
63
64
64
find_package (OpenSSL)
65
- if (OPENSSL_FOUND)
66
- add_library (sioclient_tls ${ALL_SRC} )
67
- target_include_directories (sioclient_tls PRIVATE
68
- ${CMAKE_CURRENT_LIST_DIR} /src
69
- ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
70
- ${CMAKE_CURRENT_LIST_DIR} /lib/rapidjson/include
71
- ${CMAKE_CURRENT_LIST_DIR} /lib/asio/asio/include
72
- ${OPENSSL_INCLUDE_DIR}
73
- )
65
+ if (OPENSSL_FOUND)
66
+ add_library (sioclient_tls ${ALL_SRC} )
67
+ target_include_directories (sioclient_tls PRIVATE
68
+ ${CMAKE_CURRENT_LIST_DIR} /src
69
+ ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
70
+ ${CMAKE_CURRENT_LIST_DIR} /lib/rapidjson/include
71
+ ${CMAKE_CURRENT_LIST_DIR} /lib/asio/asio/include
72
+ ${OPENSSL_INCLUDE_DIR}
73
+ )
74
74
75
- if (CMAKE_VERSION VERSION_GREATER "3.1" )
76
- set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD 11)
77
- set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD_REQUIRED ON )
78
- target_link_libraries (sioclient_tls PRIVATE ${OPENSSL_LIBRARIES} )
79
- else ()
80
- set_property (TARGET sioclient_tls APPEND_STRING PROPERTY COMPILE_FLAGS "-std=c++11" )
81
- endif ()
82
- target_compile_definitions (sioclient_tls PRIVATE -DSIO_TLS)
83
- if (BUILD_SHARED_LIBS )
84
- set_target_properties (sioclient_tls
85
- PROPERTIES
86
- SOVERSION ${MAJOR}
87
- VERSION ${MAJOR} .${MINOR} .${PATCH}
88
- )
89
- endif ()
90
- list (APPEND TARGET_LIBRARIES sioclient_tls)
75
+ if (CMAKE_VERSION VERSION_GREATER "3.1" )
76
+ set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD 11)
77
+ set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD_REQUIRED ON )
78
+ target_link_libraries (sioclient_tls PRIVATE ${OPENSSL_LIBRARIES} )
79
+ else ()
80
+ set_property (TARGET sioclient_tls APPEND_STRING PROPERTY COMPILE_FLAGS "-std=c++11" )
81
+ endif ()
82
+ target_compile_definitions (sioclient_tls PRIVATE -DSIO_TLS)
83
+ if (BUILD_SHARED_LIBS )
84
+ set_target_properties (sioclient_tls
85
+ PROPERTIES
86
+ SOVERSION ${MAJOR}
87
+ VERSION ${MAJOR} .${MINOR} .${PATCH}
88
+ )
89
+ endif ()
90
+ list (APPEND TARGET_LIBRARIES sioclient_tls)
91
91
92
- endif ()
92
+ endif ()
93
93
94
94
include (GNUInstallDirs)
95
95
96
- install (FILES ${ALL_HEADERS}
97
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
98
- )
96
+ install (FILES ${ALL_HEADERS}
97
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
98
+ )
99
99
100
100
install (TARGETS ${TARGET_LIBRARIES}
101
- DESTINATION ${CMAKE_INSTALL_LIBDIR}
102
- )
101
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
102
+ )
103
103
104
- if (BUILD_UNIT_TESTS)
105
- message (STATUS "Building with unit test support." )
106
- enable_testing ()
107
- add_subdirectory (test )
108
- endif ()
104
+ if (BUILD_UNIT_TESTS)
105
+ message (STATUS "Building with unit test support." )
106
+ enable_testing ()
107
+ add_subdirectory (test )
108
+ endif ()
0 commit comments