| 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 |
| |