11cmake_minimum_required (VERSION 3.1.0 FATAL_ERROR)
22PROJECT (sioclient)
33
4+ option (BUILD_SHARED_LIBS "Build the shared library" OFF )
5+ option (Boost_USE_STATIC_LIBS "Use Boost static version" ON )
6+
7+ set (MAJOR 1)
8+ set (MINOR 6)
9+ set (PATCH 0)
10+
411if (NOT CMAKE_BUILD_TYPE )
512MESSAGE (STATUS "not define build type, set to release" )
613set (CMAKE_BUILD_TYPE Release )
@@ -11,7 +18,6 @@ endif()
1118
1219set (BOOST_VER "1.55.0" CACHE STRING "boost version" )
1320
14- set (Boost_USE_STATIC_LIBS ON )
1521set (Boost_USE_MULTITHREADED ON )
1622set (Boost_USE_STATIC_RUNTIME OFF )
1723find_package (Boost ${BOOST_VER} REQUIRED COMPONENTS system date_time random)
@@ -21,7 +27,7 @@ aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/src/internal ALL_SRC)
2127file (GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR} /src/*.h )
2228set (SIO_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR} )
2329
24- add_library (sioclient STATIC ${ALL_SRC} )
30+ add_library (sioclient ${ALL_SRC} )
2531target_include_directories (sioclient PRIVATE ${Boost_INCLUDE_DIRS}
2632 ${CMAKE_CURRENT_LIST_DIR} /src
2733 ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
@@ -31,11 +37,18 @@ target_include_directories(sioclient PRIVATE ${Boost_INCLUDE_DIRS}
3137set_property (TARGET sioclient PROPERTY CXX_STANDARD 11)
3238set_property (TARGET sioclient PROPERTY CXX_STANDARD_REQUIRED ON )
3339target_link_libraries (sioclient PRIVATE ${Boost_LIBRARIES} )
40+ if (BUILD_SHARED_LIBS )
41+ set_target_properties (sioclient
42+ PROPERTIES
43+ SOVERSION ${MAJOR}
44+ VERSION ${MAJOR} .${MINOR} .${PATCH}
45+ )
46+ endif ()
3447list (APPEND TARGET_LIBRARIES sioclient)
3548
3649find_package (OpenSSL)
3750if (OPENSSL_FOUND)
38- add_library (sioclient_tls STATIC ${ALL_SRC} )
51+ add_library (sioclient_tls ${ALL_SRC} )
3952target_include_directories (sioclient_tls PRIVATE ${Boost_INCLUDE_DIRS}
4053 ${CMAKE_CURRENT_LIST_DIR} /src
4154 ${CMAKE_CURRENT_LIST_DIR} /lib/websocketpp
@@ -47,6 +60,13 @@ set_property(TARGET sioclient_tls PROPERTY CXX_STANDARD 11)
4760set_property (TARGET sioclient_tls PROPERTY CXX_STANDARD_REQUIRED ON )
4861target_link_libraries (sioclient_tls PRIVATE ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} )
4962target_compile_definitions (sioclient_tls PRIVATE -DSIO_TLS)
63+ if (BUILD_SHARED_LIBS )
64+ set_target_properties (sioclient_tls
65+ PROPERTIES
66+ SOVERSION ${MAJOR}
67+ VERSION ${MAJOR} .${MINOR} .${PATCH}
68+ )
69+ endif ()
5070list (APPEND TARGET_LIBRARIES sioclient_tls)
5171
5272endif ()
0 commit comments