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"
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)
)
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)
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)
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)
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)
${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()