]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cmake: add crimson static library
authorKefu Chai <kchai@redhat.com>
Thu, 14 Jun 2018 06:08:53 +0000 (14:08 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 28 Jun 2018 15:52:54 +0000 (23:52 +0800)
libcrimson consolidates the object library of crimson_{net,thread} and
seastar_{buffer,net,thread}_objs. by offering a static library glueing
seastar,  we can link against these libraries and its dependencies in a
simpler way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/CMakeLists.txt
src/crimson/CMakeLists.txt
src/crimson/net/CMakeLists.txt [deleted file]
src/crimson/thread/CMakeLists.txt [deleted file]
src/test/crimson/CMakeLists.txt

index a35b8b47ade9979524415dae1eceac8f439f6477..d206895f3f75034c2fc1e1ede460052e620886fe 100644 (file)
@@ -424,16 +424,6 @@ endif()
 add_library(common_buffer_obj OBJECT
   common/buffer.cc)
 
-if(WITH_SEASTAR)
-  add_library(seastar_buffer_obj OBJECT common/buffer_seastar.cc)
-  # target_link_libraries() doesn't work for object libraries, so the
-  # Seastar properties are applied manually (and link is unnecessary)
-  target_compile_definitions(seastar_buffer_obj
-    PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_COMPILE_DEFINITIONS>)
-  target_include_directories(seastar_buffer_obj
-    PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_INCLUDE_DIRECTORIES>)
-endif()
-
 add_library(common_texttable_obj OBJECT
   common/TextTable.cc)
 
index 36a7b102a7eed7e51d5f14ef88ca17f1d30cfe0e..7d513a5bea9cb3d31ac79da65742df3b3cff0448 100644 (file)
@@ -1,2 +1,13 @@
-add_subdirectory(net)
-add_subdirectory(thread)
+set(crimson_net_srcs
+  net/Dispatcher.cc
+  net/Errors.cc
+  net/SocketConnection.cc
+  net/SocketMessenger.cc)
+set(crimson_thread_srcs
+  thread/ThreadPool.cc
+  thread/Throttle.cc)
+add_library(crimson STATIC
+  ${crimson_net_srcs}
+  ${crimson_thread_srcs}
+  ${CMAKE_SOURCE_DIR}/src/common/buffer_seastar.cc)
+target_link_libraries(crimson Seastar::seastar)
diff --git a/src/crimson/net/CMakeLists.txt b/src/crimson/net/CMakeLists.txt
deleted file mode 100644 (file)
index 99cd65b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-set(crimson_net_srcs
-  Dispatcher.cc
-  Errors.cc
-  SocketConnection.cc
-  SocketMessenger.cc)
-add_library(crimson_net_objs OBJECT ${crimson_net_srcs})
-target_compile_definitions(crimson_net_objs
-  PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_COMPILE_DEFINITIONS>)
-target_include_directories(crimson_net_objs
-  PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_INCLUDE_DIRECTORIES>)
diff --git a/src/crimson/thread/CMakeLists.txt b/src/crimson/thread/CMakeLists.txt
deleted file mode 100644 (file)
index 339ff4b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-set(crimson_thread_srcs
-  ThreadPool.cc
-  Throttle.cc)
-add_library(crimson_thread_objs OBJECT ${crimson_thread_srcs})
-target_compile_definitions(crimson_thread_objs
-  PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_COMPILE_DEFINITIONS>)
-target_include_directories(crimson_thread_objs
-  PUBLIC $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_INCLUDE_DIRECTORIES>)
index 313afa943fff5788a729e511fe88640d4eacbc44..b6d890411c86d56dd1d3e0da300c12b86302182b 100644 (file)
@@ -1,37 +1,24 @@
-set(test_buffer_srcs
-  test_buffer.cc
-  $<TARGET_OBJECTS:seastar_buffer_obj>)
-add_executable(unittest_seastar_buffer ${test_buffer_srcs})
+add_executable(unittest_seastar_buffer
+  test_buffer.cc)
 add_ceph_unittest(unittest_seastar_buffer)
-target_link_libraries(unittest_seastar_buffer ceph-common Seastar::seastar)
+target_link_libraries(unittest_seastar_buffer ceph-common crimson)
 
 add_executable(unittest_seastar_denc
   test_denc.cc
-  $<TARGET_OBJECTS:seastar_buffer_obj>
   $<TARGET_OBJECTS:unit-main>)
 add_ceph_unittest(unittest_seastar_denc)
-target_link_libraries(unittest_seastar_denc ceph-common global Seastar::seastar)
+target_link_libraries(unittest_seastar_denc ceph-common global crimson)
 
-set(test_messenger_srcs
-  test_messenger.cc
-  $<TARGET_OBJECTS:seastar_buffer_obj>
-  $<TARGET_OBJECTS:crimson_net_objs>
-  $<TARGET_OBJECTS:crimson_thread_objs>)
-add_executable(unittest_seastar_messenger ${test_messenger_srcs})
+add_executable(unittest_seastar_messenger test_messenger.cc)
 add_ceph_unittest(unittest_seastar_messenger)
-target_link_libraries(unittest_seastar_messenger ceph-common Seastar::seastar)
+target_link_libraries(unittest_seastar_messenger ceph-common crimson)
 
-set(test_alien_echo_srcs
-  test_alien_echo.cc
-  $<TARGET_OBJECTS:seastar_buffer_obj>
-  $<TARGET_OBJECTS:crimson_net_objs>
-  $<TARGET_OBJECTS:crimson_thread_objs>)
-add_executable(unittest_seastar_echo ${test_alien_echo_srcs})
+add_executable(unittest_seastar_echo
+  test_alien_echo.cc)
 add_ceph_unittest(unittest_seastar_echo)
-target_link_libraries(unittest_seastar_echo ceph-common global Seastar::seastar)
+target_link_libraries(unittest_seastar_echo ceph-common global crimson)
 
 add_executable(unittest_seastar_thread_pool
-  test_thread_pool.cc
-  $<TARGET_OBJECTS:crimson_thread_objs>)
+  test_thread_pool.cc)
 add_ceph_unittest(unittest_seastar_thread_pool)
-target_link_libraries(unittest_seastar_thread_pool Seastar::seastar)
+target_link_libraries(unittest_seastar_thread_pool crimson)