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