Add options to choose between static and dynamic libraries

This commit is contained in:
Vincent Raman 2015-09-03 17:54:47 +02:00
parent bbbc1e32dd
commit dc045baffe

View File

@ -1,6 +1,9 @@
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
PROJECT(sioclient) PROJECT(sioclient)
option(BUILD_SHARED_LIBS "Build the shared library" OFF)
option(Boost_USE_STATIC_LIBS "Use Boost static version" ON)
if(NOT CMAKE_BUILD_TYPE ) if(NOT CMAKE_BUILD_TYPE )
MESSAGE(STATUS "not define build type, set to release" ) MESSAGE(STATUS "not define build type, set to release" )
set(CMAKE_BUILD_TYPE Release ) set(CMAKE_BUILD_TYPE Release )
@ -11,7 +14,6 @@ endif()
set(BOOST_VER "1.55.0" CACHE STRING "boost version" ) set(BOOST_VER "1.55.0" CACHE STRING "boost version" )
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON) set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF) set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost ${BOOST_VER} REQUIRED COMPONENTS system date_time random) find_package(Boost ${BOOST_VER} REQUIRED COMPONENTS system date_time random)
@ -21,7 +23,7 @@ aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/src/internal ALL_SRC)
file(GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR}/src/*.h ) file(GLOB ALL_HEADERS ${CMAKE_CURRENT_LIST_DIR}/src/*.h )
set(SIO_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR}) set(SIO_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR})
add_library(sioclient STATIC ${ALL_SRC}) add_library(sioclient ${ALL_SRC})
target_include_directories(sioclient PRIVATE ${Boost_INCLUDE_DIRS} target_include_directories(sioclient PRIVATE ${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_LIST_DIR}/src ${CMAKE_CURRENT_LIST_DIR}/src
${CMAKE_CURRENT_LIST_DIR}/lib/websocketpp ${CMAKE_CURRENT_LIST_DIR}/lib/websocketpp
@ -35,7 +37,7 @@ list(APPEND TARGET_LIBRARIES sioclient)
find_package(OpenSSL) find_package(OpenSSL)
if(OPENSSL_FOUND) if(OPENSSL_FOUND)
add_library(sioclient_tls STATIC ${ALL_SRC}) add_library(sioclient_tls ${ALL_SRC})
target_include_directories(sioclient_tls PRIVATE ${Boost_INCLUDE_DIRS} target_include_directories(sioclient_tls PRIVATE ${Boost_INCLUDE_DIRS}
${CMAKE_CURRENT_LIST_DIR}/src ${CMAKE_CURRENT_LIST_DIR}/src
${CMAKE_CURRENT_LIST_DIR}/lib/websocketpp ${CMAKE_CURRENT_LIST_DIR}/lib/websocketpp