blob: 09f59b11ec54c7866b5a5fbeee8af1b42a850478 [file] [log] [blame]
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