-
-add_library(libclient_utilities STATIC utilities.cc generator.cc execute.cc)
-add_library(client_utilities ALIAS libclient_utilities)
-target_link_libraries(libclient_utilities PRIVATE libmemcachedinternal)
-target_include_directories(libclient_utilities PUBLIC
- ${CMAKE_SOURCE_DIR}/include
- ${CMAKE_BINARY_DIR}/include
- ${CMAKE_SOURCE_DIR}/src
- ${CMAKE_BINARY_DIR}/src
- ${CMAKE_BINARY_DIR})
-
+add_subdirectory(common)
foreach(CLIENT IN LISTS CLIENTS)
add_executable(${CLIENT} ${CLIENT}.cc)
target_include_directories(${CLIENT} PRIVATE ..)
- target_link_libraries(${CLIENT} PRIVATE libclient_utilities)
- set_target_properties(${CLIENT} PROPERTIES INSTALL_RPATH $ORIGIN/../${CMAKE_INSTALL_LIBDIR})
+ target_link_libraries(${CLIENT} PRIVATE libclient_common)
+ if(CMAKE_INSTALL_RPATH)
+ set_target_properties(${CLIENT} PROPERTIES
+ INSTALL_RPATH ${CMAKE_INSTALL_RPATH}/../${CMAKE_INSTALL_LIBDIR})
+ endif()
install(TARGETS ${CLIENT}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endforeach()
# memaslap is special
-if(ENABLE_MEMASLAP)
- if(LIBEVENT AND HAVE_C_STDATOMIC)
- add_executable(memaslap memaslap.c
- ms_conn.c ms_setting.c ms_sigsegv.c ms_stats.c ms_task.c ms_thread.c)
- target_include_directories(memaslap PRIVATE ${LIBEVENT_INCLUDEDIR})
- target_link_libraries(memaslap PRIVATE libclient_utilities ${LIBEVENT_LIBRARIES} Threads::Threads)
- install(TARGETS memaslap
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+if(HAVE_MEMASLAP)
+ add_executable(memaslap memaslap.c
+ memaslap/ms_conn.c
+ memaslap/ms_setting.c
+ memaslap/ms_sigsegv.c
+ memaslap/ms_stats.c
+ memaslap/ms_task.c
+ memaslap/ms_thread.c)
+ target_include_directories(memaslap PRIVATE memaslap ${LIBEVENT_INCLUDEDIR})
+ target_link_libraries(memaslap PRIVATE libclient_common ${LIBEVENT_LIBRARIES} Threads::Threads)
+ if(CMAKE_INSTALL_RPATH)
+ set_target_properties(${CLIENT} PROPERTIES
+ INSTALL_RPATH ${CMAKE_INSTALL_RPATH}/../${CMAKE_INSTALL_LIBDIR})
endif()
+ install(TARGETS memaslap
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()