1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- From 45824f58b10575d8d88d4bce934aedee821a6df0 Mon Sep 17 00:00:00 2001
- From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- Date: Thu, 15 Oct 2020 22:26:55 +0200
- Subject: [PATCH] CMakeLists.txt: respect BUILD_SHARED_LIBS
- Don't build and install pistache_shared if the standard cmake
- BUILD_SHARED_LIBS is set to OFF
- Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- [Backport from upstream:
- https://github.com/oktal/pistache/commit/c04166ca9e6420a8fbc93fef4055ee2eccdcebe4
- ]
- ---
- src/CMakeLists.txt | 43 +++++++++++++++++++++++++------------------
- 1 file changed, 25 insertions(+), 18 deletions(-)
- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
- index 6521b20..c5b049f 100644
- --- a/src/CMakeLists.txt
- +++ b/src/CMakeLists.txt
- @@ -26,31 +26,36 @@ set(include_install_dir ${CMAKE_INSTALL_INCLUDEDIR})
- set(lib_install_dir ${CMAKE_INSTALL_LIBDIR})
- set(bin_install_dir ${CMAKE_INSTALL_BINDIR})
-
- -add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>)
- -add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>)
- +if (BUILD_SHARED_LIBS)
- + add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>)
- + target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
- + target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE})
- +endif ()
-
- -target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
- +add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>)
- target_link_libraries(pistache_static PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
- -
- -target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE})
- target_include_directories(pistache_static INTERFACE ${PISTACHE_INCLUDE})
-
- if (PISTACHE_USE_SSL)
- target_compile_definitions(pistache PUBLIC PISTACHE_USE_SSL)
- - target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL)
- target_compile_definitions(pistache_static PUBLIC PISTACHE_USE_SSL)
-
- target_include_directories(pistache PRIVATE ${OPENSSL_INCLUDE_DIR})
- - target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto)
- target_link_libraries(pistache_static PUBLIC OpenSSL::SSL OpenSSL::Crypto)
- + if (BUILD_SHARED_LIBS)
- + target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL)
- + target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto)
- + endif ()
- endif ()
-
- set(Pistache_OUTPUT_NAME "pistache")
- -set_target_properties(pistache_shared PROPERTIES
- - OUTPUT_NAME ${Pistache_OUTPUT_NAME}
- - VERSION ${version}
- - SOVERSION ${VERSION_MAJOR}
- -)
- +if (BUILD_SHARED_LIBS)
- + set_target_properties(pistache_shared PROPERTIES
- + OUTPUT_NAME ${Pistache_OUTPUT_NAME}
- + VERSION ${version}
- + SOVERSION ${VERSION_MAJOR}
- + )
- +endif ()
-
- set_target_properties(pistache_static PROPERTIES
- OUTPUT_NAME ${Pistache_OUTPUT_NAME}
- @@ -60,13 +65,15 @@ if (PISTACHE_INSTALL)
- set(Pistache_CONFIG_FILE "PistacheConfig.cmake")
- set(Pistache_CONFIG_VERSION_FILE "PistacheConfigVersion.cmake")
-
- - install(
- - TARGETS pistache_shared
- - EXPORT PistacheTargets
- - ARCHIVE DESTINATION ${lib_install_dir}
- - LIBRARY DESTINATION ${lib_install_dir}
- - RUNTIME DESTINATION ${bin_install_dir}
- - INCLUDES DESTINATION ${include_install_dir})
- + if (BUILD_SHARED_LIBS)
- + install(
- + TARGETS pistache_shared
- + EXPORT PistacheTargets
- + ARCHIVE DESTINATION ${lib_install_dir}
- + LIBRARY DESTINATION ${lib_install_dir}
- + RUNTIME DESTINATION ${bin_install_dir}
- + INCLUDES DESTINATION ${include_install_dir})
- + endif()
-
- install(
- DIRECTORY "${PROJECT_SOURCE_DIR}/include/pistache"
- --
- 2.28.0
|