Merge branch 'gh-132/static-libs' into v1.x
authorMichael Wallner <mike@php.net>
Tue, 21 Feb 2023 16:52:49 +0000 (17:52 +0100)
committerMichael Wallner <mike@php.net>
Tue, 21 Feb 2023 16:52:49 +0000 (17:52 +0100)
CMakeConfig.txt
src/libhashkit/CMakeLists.txt
src/libmemcached/CMakeLists.txt
src/libmemcachedprotocol/CMakeLists.txt
src/libmemcachedutil/CMakeLists.txt
src/p9y/CMakeLists.txt

index d8afcaefc3ceae4cee6a09a0eacb45d0eb0b67e4..714ee94e9be2a4e9bad17cd0574d85cb7ad52691 100644 (file)
@@ -23,6 +23,8 @@ else()
     set(TARGET_NAMELINK_COMPONENT NAMELINK_COMPONENT dev DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
 
+option(BUILD_SHARED_LIBS    "whether to build shared libraries"
+        ON)
 option(BUILD_TESTING        "whether to enable build of the test suite"
         $ENV{BUILD_TESTING})
 option(BUILD_DOCSONLY       "build *only* documentation"
index fb732fcfaf22f0df0c3461bd1cf1952070596014..455570af3e3d78093882e303ee15a523cb441fcc 100644 (file)
@@ -21,12 +21,12 @@ set(libhashkit_sources
         strerror.cc
         string.cc
         )
-add_library(libhashkit SHARED)
+add_library(libhashkit)
 add_library(hashkit ALIAS libhashkit)
 set_target_properties(libhashkit PROPERTIES
         CXX_STANDARD ${CXX_STANDARD}
-        LIBRARY_OUTPUT_NAME hashkit
-        LIBRARY_OUTPUT_NAME_DEBUG hashkit-dbg
+        OUTPUT_NAME hashkit
+        OUTPUT_NAME_DEBUG hashkit-dbg
         SOVERSION ${LIBHASHKIT_SO_SOVERSION}
         VERSION ${LIBHASHKIT_SO_VERSION})
 target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT)
index 81d84638d13767d71a2f46466d6c376d4ac0ae71..05116ae8f3dba731bd4c263d206ac699bc2a91e0 100644 (file)
@@ -85,12 +85,12 @@ if(W_NO_DEPRECATED_REGISTER)
         )
 endif()
 
-add_library(libmemcached SHARED)
+add_library(libmemcached)
 add_library(memcached ALIAS libmemcached)
 set_target_properties(libmemcached PROPERTIES
         CXX_STANDARD ${CXX_STANDARD}
-        LIBRARY_OUTPUT_NAME memcached
-        LIBRARY_OUTPUT_NAME_DEBUG memcached-dbg
+        OUTPUT_NAME memcached
+        OUTPUT_NAME_DEBUG memcached-dbg
         SOVERSION ${LIBMEMCACHED_SO_SOVERSION}
         VERSION ${LIBMEMCACHED_SO_VERSION})
 target_compile_definitions(libmemcached PRIVATE -DBUILDING_LIBMEMCACHED)
@@ -147,7 +147,7 @@ target_sources(libmemcached PRIVATE
 
 add_library(libmemcachedinternal STATIC)
 add_library(memcachedinternal ALIAS libmemcachedinternal)
-set_target_properties(libmemcachedinternal PROPERTIES CXX_STANDARD ${CXX_STANDARD} LIBRARY_OUTPUT_NAME memcachedinternal)
+set_target_properties(libmemcachedinternal PROPERTIES CXX_STANDARD ${CXX_STANDARD} OUTPUT_NAME memcachedinternal)
 target_compile_definitions(libmemcachedinternal PRIVATE -DBUILDING_LIBMEMCACHEDINTERNAL)
 target_link_libraries(libmemcachedinternal PUBLIC libhashkit Threads::Threads ${CMAKE_DL_LIBS})
 target_link_libraries(libmemcachedinternal PRIVATE p9y)
index b28afe7200ed258e4d6ae1c88b45df4d62fdb3ad..c213e270fab4155ed7ed9b4a688c8f620f601bbe 100644 (file)
@@ -9,12 +9,12 @@ set(libmemcachedprotocol_sources
         pedantic.c
         ../libmemcached/byteorder.cc
         )
-add_library(libmemcachedprotocol SHARED)
+add_library(libmemcachedprotocol)
 add_library(memcachedprotocol ALIAS libmemcachedprotocol)
 set_target_properties(libmemcachedprotocol PROPERTIES
         CXX_STANDARD ${CXX_STANDARD}
-        LIBRARY_OUTPUT_NAME memcachedprotocol
-        LIBRARY_OUTPUT_NAME_DEBUG memcachedprotocol-dbg
+        OUTPUT_NAME memcachedprotocol
+        OUTPUT_NAME_DEBUG memcachedprotocol-dbg
         SOVERSION ${LIBMEMCACHEDPROTOCOL_SO_SOVERSION}
         VERSION ${LIBMEMCACHEDPROTOCOL_SO_VERSION})
 target_compile_definitions(libmemcachedprotocol PRIVATE -DBUILDING_LIBMEMCACHED)
index 78e87d305fe1bac2dac89c87a178d37bcda9512b..1531cb81df76abf3f83e5b547b127255c40712bb 100644 (file)
@@ -6,15 +6,15 @@ set(libmemcachedutil_sources
         ping.cc
         version.cc
         )
-add_library(libmemcachedutil SHARED)
+add_library(libmemcachedutil)
 add_library(memcachedutil ALIAS libmemcachedutil)
 if(CMAKE_USE_PTHREADS_INIT)
     target_sources(libmemcachedutil PRIVATE pool.cc)
 endif()
 set_target_properties(libmemcachedutil PROPERTIES
         CXX_STANDARD ${CXX_STANDARD}
-        LIBRARY_OUTPUT_NAME memcachedutil
-        LIBRARY_OUTPUT_NAME_DEBUG memcachedutil-dbg
+        OUTPUT_NAME memcachedutil
+        OUTPUT_NAME_DEBUG memcachedutil-dbg
         SOVERSION ${LIBMEMCACHEDUTIL_SO_SOVERSION}
         VERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
 target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED)
index 6906b8f0154f0febcf41541ccbc35dd3210480fc..67d84fde0c608eae7a10dc280d2c2747aeda272e 100644 (file)
@@ -20,6 +20,17 @@ target_include_directories(p9y PRIVATE
     ${CMAKE_BINARY_DIR}/include
     )
 
+install(TARGETS p9y EXPORT p9y-targets
+        RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR}
+        ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        ${TARGET_NAMELINK_COMPONENT}
+        )
+export(EXPORT p9y-targets NAMESPACE libmemcached::)
+install(EXPORT p9y-targets NAMESPACE libmemcached::
+        COMPONENT dev
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+
 if(NOT HAVE_GETOPT_H)
     target_sources(p9y PRIVATE getopt.c)
 endif()