d99b065edfb1c6bf1c5026dcb74b5c485bf6d034
[m6w6/libmemcached] / src / libmemcachedutil / CMakeLists.txt
1
2 add_library(libmemcachedutil SHARED
3 ../libmemcached/backtrace.cc
4 common.h
5 flush.cc
6 pid.cc
7 ping.cc
8 version.cc
9 )
10 if(CMAKE_USE_PTHREADS_INIT)
11 target_sources(libmemcachedutil PRIVATE pool.cc)
12 endif()
13 add_library(memcachedutil ALIAS libmemcachedutil)
14 set_target_properties(libmemcachedutil PROPERTIES
15 CXX_STANDARD ${CXX_STANDARD}
16 LIBRARY_OUTPUT_NAME memcachedutil
17 LIBRARY_OUTPUT_NAME_DEBUG memcachedutil-dbg
18 SOVERSION ${LIBMEMCACHEDUTIL_SO_SOVERSION}
19 VERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
20 target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED)
21 if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
22 set_target_properties(libmemcachedutil PROPERTIES
23 LINK_FLAGS "-Wl,-undefined,dynamic_lookup"
24 )
25 endif()
26 if(MSVC OR MINGW)
27 target_link_libraries(libmemcachedutil PUBLIC libmemcached)
28 endif()
29 target_link_libraries(libmemcachedutil PUBLIC Threads::Threads)
30 if(HAVE_LIBSASL)
31 target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL})
32 endif()
33 target_include_directories(libmemcachedutil PRIVATE
34 ${CMAKE_SOURCE_DIR}/src
35 ${CMAKE_BINARY_DIR}/src
36 ${CMAKE_BINARY_DIR})
37 target_include_directories(libmemcachedutil PUBLIC
38 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
39 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
40 $<INSTALL_INTERFACE:include>)
41
42 install(TARGETS libmemcachedutil EXPORT libmemcachedutil-targets
43 RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR}
44 ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
45 LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
46 ${TARGET_NAMELINK_COMPONENT}
47 )
48 export(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::)
49 install(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::
50 COMPONENT dev
51 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})