ensure unique keys
[m6w6/libmemcached] / src / bin / CMakeLists.txt
index 8cd42462c3c07497d015887f2e0e3b45b53414fd..0894b24704dc65a3693958da5626e1ea8ac4844d 100644 (file)
@@ -1,12 +1,13 @@
-
-add_library(libclient_utilities STATIC utilities.cc generator.cc execute.cc)
-add_library(client_utilities ALIAS libclient_utilities)
-target_link_libraries(libclient_utilities libmemcachedinternal)
+add_subdirectory(common)
 
 foreach(CLIENT IN LISTS CLIENTS)
     add_executable(${CLIENT} ${CLIENT}.cc)
     target_include_directories(${CLIENT} PRIVATE ..)
-    target_link_libraries(${CLIENT} libclient_utilities)
+    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()
@@ -17,18 +18,27 @@ target_sources(memcapable PRIVATE ../libmemcached/byteorder.cc)
 
 # extra libs
 
-target_link_libraries(memcapable Threads::Threads)
-target_link_libraries(memping libmemcachedutil)
-target_link_libraries(memslap Threads::Threads)
+target_link_libraries(memcapable PRIVATE Threads::Threads)
+target_link_libraries(memping PRIVATE libmemcachedutil)
+target_link_libraries(memslap PRIVATE Threads::Threads)
 
 # 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 libclient_utilities ${LIBEVENT_LIBRARIES} Threads::Threads)
+                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()