@@ -3,6 +3,7 @@ project(trantor)
3
3
4
4
option (BUILD_DOC "Build Doxygen documentation" OFF )
5
5
option (BUILD_C-ARES "Build C-ARES" ON )
6
+ option (BUILD_SHARED_LIBS "Build trantor as a shared lib" OFF )
6
7
7
8
list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake_modules/ )
8
9
@@ -24,14 +25,13 @@ set(INSTALL_TRANTOR_CMAKE_DIR
24
25
${DEF_INSTALL_TRANTOR_CMAKE_DIR}
25
26
CACHE PATH "Installation directory for cmake files" )
26
27
27
- if ( BUILD_TRANTOR_SHARED )
28
- set ( CMAKE_POSITION_INDEPENDENT_CODE TRUE )
28
+ add_library ( ${PROJECT_NAME} )
29
+ if ( BUILD_SHARED_LIBS )
29
30
list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
30
31
"${CMAKE_INSTALL_PREFIX} /${INSTALL_LIB_DIR} " isSystemDir )
31
32
if ("${isSystemDir} " STREQUAL "-1" )
32
33
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX} /${INSTALL_LIB_DIR} " )
33
34
endif ("${isSystemDir} " STREQUAL "-1" )
34
- add_library (${PROJECT_NAME} SHARED )
35
35
set_target_properties (${PROJECT_NAME} PROPERTIES
36
36
VERSION ${TRANTOR_VERSION}
37
37
SOVERSION ${TRANTOR_MAJOR_VERSION} )
@@ -42,9 +42,7 @@ if(BUILD_TRANTOR_SHARED)
42
42
# exact same compiler for drogon and your app.
43
43
target_compile_options (${PROJECT_NAME} PUBLIC /wd4251 /wd4275 )
44
44
endif ()
45
- else (BUILD_TRANTOR_SHARED )
46
- add_library (${PROJECT_NAME} STATIC )
47
- endif (BUILD_TRANTOR_SHARED )
45
+ endif (BUILD_SHARED_LIBS )
48
46
49
47
if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND CMAKE_CXX_COMPILER_ID MATCHES Clang|GNU )
50
48
target_compile_options (${PROJECT_NAME} PRIVATE -Wall -Wextra -Werror )
0 commit comments