cmake: build success
[m6w6/libmemcached] / clients / CMakeLists.txt
1
2 set(CLIENTS
3 memcapable
4 memcat
5 memcp
6 memdump
7 memerror
8 memexist
9 memflush
10 memparse
11 memping
12 memrm
13 memslap
14 memstat
15 memtouch)
16
17 add_library(libclient_utilities STATIC utilities.cc)
18 add_library(client_utilities ALIAS libclient_utilities)
19 target_include_directories(libclient_utilities PRIVATE ..)
20 target_link_libraries(libclient_utilities libmemcachedinternal)
21
22 add_library(libclient_slap STATIC generator.cc execute.cc)
23 add_library(client_slap ALIAS libclient_slap)
24 target_include_directories(libclient_slap PRIVATE ..)
25 target_link_libraries(libclient_slap libmemcachedinternal)
26
27 foreach(CLIENT IN LISTS CLIENTS)
28 add_executable(${CLIENT} ${CLIENT}.cc)
29 target_include_directories(${CLIENT} PRIVATE ..)
30 target_link_libraries(${CLIENT} libclient_utilities)
31 endforeach()
32
33 # extra sources
34
35 target_sources(memcapable PRIVATE ../libmemcached/byteorder.cc)
36
37 # extra libs
38
39 target_link_libraries(memcapable ${CMAKE_THREAD_LIBS_INIT})
40 target_link_libraries(memping libmemcachedutil)
41 target_link_libraries(memslap libclient_slap ${CMAKE_THREAD_LIBS_INIT})
42
43 # memaslap is special
44
45 find_library(LIBEVENT event)
46 check_stdatomic()
47
48 if(LIBEVENT AND HAVE_C_STDATOMIC)
49 check_decl(getline stdio.h)
50 add_executable(memaslap memaslap.c
51 ms_conn.c ms_setting.c ms_sigsegv.c ms_stats.c ms_task.c ms_thread.c)
52 target_include_directories(memaslap PRIVATE ..)
53 target_link_libraries(memaslap libclient_slap libclient_utilities ${LIBEVENT} ${CMAKE_THREAD_LIBS_INIT})
54 endif()