-
-add_library(libmemcachedutil SHARED
+set(libmemcachedutil_sources
../libmemcached/backtrace.cc
common.h
flush.cc
pid.cc
ping.cc
- pool.cc
version.cc
)
+add_library(libmemcachedutil)
add_library(memcachedutil ALIAS libmemcachedutil)
-set_target_properties(libmemcachedutil PROPERTIES LIBRARY_OUTPUT_NAME memcachedutil)
+if(CMAKE_USE_PTHREADS_INIT)
+ target_sources(libmemcachedutil PRIVATE pool.cc)
+endif()
+set_target_properties(libmemcachedutil PROPERTIES
+ CXX_STANDARD ${CXX_STANDARD}
+ OUTPUT_NAME memcachedutil
+ OUTPUT_NAME_DEBUG memcachedutil-dbg
+ SOVERSION ${LIBMEMCACHEDUTIL_SO_SOVERSION}
+ VERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED)
+if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+ set_target_properties(libmemcachedutil PROPERTIES
+ LINK_FLAGS "-Wl,-undefined,dynamic_lookup"
+ )
+endif()
target_link_libraries(libmemcachedutil PUBLIC libmemcached Threads::Threads)
+if(HAVE_LIBSASL)
+ target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL})
+endif()
target_include_directories(libmemcachedutil PRIVATE
${CMAKE_SOURCE_DIR}/src
${CMAKE_BINARY_DIR}/src
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>)
-set_target_properties(libmemcachedutil PROPERTIES SOVERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
-install(TARGETS libmemcachedutil EXPORT libmemcachedutil
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-export(EXPORT libmemcachedutil)
-install(EXPORT libmemcachedutil DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake)
+install(TARGETS libmemcachedutil EXPORT libmemcachedutil-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 libmemcachedutil-targets NAMESPACE libmemcached::)
+install(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::
+ COMPONENT dev
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+
+target_sources(libmemcachedutil PRIVATE
+ ${libmemcachedutil_sources}
+ ${libmemcachedutil_includes})