1From 45824f58b10575d8d88d4bce934aedee821a6df0 Mon Sep 17 00:00:00 2001 2From: Fabrice Fontaine <fontaine.fabrice@gmail.com> 3Date: Thu, 15 Oct 2020 22:26:55 +0200 4Subject: [PATCH] CMakeLists.txt: respect BUILD_SHARED_LIBS 5 6Don't build and install pistache_shared if the standard cmake 7BUILD_SHARED_LIBS is set to OFF 8 9Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 10[Backport from upstream: 11 https://github.com/oktal/pistache/commit/c04166ca9e6420a8fbc93fef4055ee2eccdcebe4 12] 13--- 14 src/CMakeLists.txt | 43 +++++++++++++++++++++++++------------------ 15 1 file changed, 25 insertions(+), 18 deletions(-) 16 17diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 18index 6521b20..c5b049f 100644 19--- a/src/CMakeLists.txt 20+++ b/src/CMakeLists.txt 21@@ -26,31 +26,36 @@ set(include_install_dir ${CMAKE_INSTALL_INCLUDEDIR}) 22 set(lib_install_dir ${CMAKE_INSTALL_LIBDIR}) 23 set(bin_install_dir ${CMAKE_INSTALL_BINDIR}) 24 25-add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>) 26-add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>) 27+if (BUILD_SHARED_LIBS) 28+ add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>) 29+ target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) 30+ target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE}) 31+endif () 32 33-target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) 34+add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>) 35 target_link_libraries(pistache_static PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) 36- 37-target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE}) 38 target_include_directories(pistache_static INTERFACE ${PISTACHE_INCLUDE}) 39 40 if (PISTACHE_USE_SSL) 41 target_compile_definitions(pistache PUBLIC PISTACHE_USE_SSL) 42- target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL) 43 target_compile_definitions(pistache_static PUBLIC PISTACHE_USE_SSL) 44 45 target_include_directories(pistache PRIVATE ${OPENSSL_INCLUDE_DIR}) 46- target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto) 47 target_link_libraries(pistache_static PUBLIC OpenSSL::SSL OpenSSL::Crypto) 48+ if (BUILD_SHARED_LIBS) 49+ target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL) 50+ target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto) 51+ endif () 52 endif () 53 54 set(Pistache_OUTPUT_NAME "pistache") 55-set_target_properties(pistache_shared PROPERTIES 56- OUTPUT_NAME ${Pistache_OUTPUT_NAME} 57- VERSION ${version} 58- SOVERSION ${VERSION_MAJOR} 59-) 60+if (BUILD_SHARED_LIBS) 61+ set_target_properties(pistache_shared PROPERTIES 62+ OUTPUT_NAME ${Pistache_OUTPUT_NAME} 63+ VERSION ${version} 64+ SOVERSION ${VERSION_MAJOR} 65+ ) 66+endif () 67 68 set_target_properties(pistache_static PROPERTIES 69 OUTPUT_NAME ${Pistache_OUTPUT_NAME} 70@@ -60,13 +65,15 @@ if (PISTACHE_INSTALL) 71 set(Pistache_CONFIG_FILE "PistacheConfig.cmake") 72 set(Pistache_CONFIG_VERSION_FILE "PistacheConfigVersion.cmake") 73 74- install( 75- TARGETS pistache_shared 76- EXPORT PistacheTargets 77- ARCHIVE DESTINATION ${lib_install_dir} 78- LIBRARY DESTINATION ${lib_install_dir} 79- RUNTIME DESTINATION ${bin_install_dir} 80- INCLUDES DESTINATION ${include_install_dir}) 81+ if (BUILD_SHARED_LIBS) 82+ install( 83+ TARGETS pistache_shared 84+ EXPORT PistacheTargets 85+ ARCHIVE DESTINATION ${lib_install_dir} 86+ LIBRARY DESTINATION ${lib_install_dir} 87+ RUNTIME DESTINATION ${bin_install_dir} 88+ INCLUDES DESTINATION ${include_install_dir}) 89+ endif() 90 91 install( 92 DIRECTORY "${PROJECT_SOURCE_DIR}/include/pistache" 93-- 942.28.0 95 96