fix #136: libmemcachedutil is underlinked
[awesomized/libmemcached] / src / libmemcachedutil / CMakeLists.txt
1 set(libmemcachedutil_sources
2 ../libmemcached/backtrace.cc
3 common.h
4 flush.cc
5 pid.cc
6 ping.cc
7 version.cc
8 )
9 add_library(libmemcachedutil)
10 add_library(memcachedutil ALIAS libmemcachedutil)
11 if(CMAKE_USE_PTHREADS_INIT)
12 target_sources(libmemcachedutil PRIVATE pool.cc)
13 endif()
14 set_target_properties(libmemcachedutil PROPERTIES
15 CXX_STANDARD ${CXX_STANDARD}
16 OUTPUT_NAME memcachedutil
17 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 target_link_libraries(libmemcachedutil PUBLIC libmemcached Threads::Threads)
27 if(HAVE_LIBSASL)
28 target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL})
29 endif()
30 target_include_directories(libmemcachedutil PRIVATE
31 ${CMAKE_SOURCE_DIR}/src
32 ${CMAKE_BINARY_DIR}/src
33 ${CMAKE_BINARY_DIR})
34 target_include_directories(libmemcachedutil PUBLIC
35 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
36 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
37 $<INSTALL_INTERFACE:include>)
38
39 install(TARGETS libmemcachedutil EXPORT libmemcachedutil-targets
40 RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR}
41 ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
42 LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
43 ${TARGET_NAMELINK_COMPONENT}
44 )
45 export(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::)
46 install(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::
47 COMPONENT dev
48 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
49
50 target_sources(libmemcachedutil PRIVATE
51 ${libmemcachedutil_sources}
52 ${libmemcachedutil_includes})