0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch 3.7 KB

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