cmake: dmclock related cleanups
authorKefu Chai <kchai@redhat.com>
Thu, 9 Aug 2018 09:53:01 +0000 (17:53 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 22 Aug 2018 02:20:51 +0000 (10:20 +0800)
* do not include_directories() globally. use dmclock::dmclock's
  interface properties instead
* add_subdirectory(dmclock) instead of add_subdirectory(dmclock/src)
  for including its
* set dmclock_TEST instead of including the subdirectories under
  dmclock/
* objclass/class_api.cc includes PrimaryLogPG.h, which in turn includes
  indirect_intrusive_heap.h, so it'd better to compile class_api.cc as
  a part of osd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/CMakeLists.txt
src/osd/CMakeLists.txt
src/test/common/CMakeLists.txt

index 70b24c95e33f5cd58a50a6cbbb51fffdd47ef388..d84cc581b5c732fa3034c61a1a00088dae7bb77a 100644 (file)
@@ -283,9 +283,6 @@ add_subdirectory(json_spirit)
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/xxHash")
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/rapidjson/include")
 
-include_directories("${CMAKE_SOURCE_DIR}/src/dmclock/src")
-include_directories("${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
-
 if(WITH_SEASTAR)
   find_package(fmt 4.0.0 QUIET)
   if(NOT fmt_FOUND)
@@ -493,9 +490,6 @@ endif()
 add_subdirectory(kv)
 add_subdirectory(os)
 
-set(cls_references_files objclass/class_api.cc)
-add_library(cls_references_objs OBJECT ${cls_references_files})
-
 add_subdirectory(osd)
 
 set(ceph_osd_srcs
@@ -538,27 +532,26 @@ if(WITH_TESTS)
     add_library(GTest::GTest ALIAS gtest)
     add_library(GTest::Main ALIAS gtest_main)
   endif()
-
-  add_subdirectory(test)
 endif(WITH_TESTS)
 
-add_subdirectory(compressor)
-
-add_subdirectory(tools)
-
 # dmClock (after gmock)
-
-add_subdirectory(dmclock/src)
-
 option(WITH_DMCLOCK_TESTS
   "enable the build of dmclock-tests and dmclock-data-struct tests binaries"
   OFF)
 if(WITH_TESTS AND WITH_DMCLOCK_TESTS)
   # note: add_test is not being called, so dmclock tests aren't part
   # of ceph tests
-  add_subdirectory(dmclock/test)
-  add_subdirectory(dmclock/support/test)
-endif(WITH_TESTS AND WITH_DMCLOCK_TESTS)
+  set(dmclock_TEST ON CACHE BOOL "" FORCE)
+endif()
+add_subdirectory(dmclock)
+
+add_subdirectory(compressor)
+
+add_subdirectory(tools)
+
+if(WITH_TESTS)
+  add_subdirectory(test)
+endif()
 
 add_subdirectory(crypto)
 
index eb62a76c279d302e8bb4ed462c20ae4181ed8a38..a4dcd6bd4291c9950380d44bf3b3c18bc5633558 100644 (file)
@@ -34,6 +34,7 @@ set(osd_srcs
   mClockClientQueue.cc
   OpQueueItem.cc
   ${CMAKE_SOURCE_DIR}/src/common/TrackedOp.cc
+  ${CMAKE_SOURCE_DIR}/src/objclass/class_api.cc
   ${osd_cyg_functions_src}
   ${osdc_osd_srcs})
 if(HAS_VTA)
@@ -41,11 +42,12 @@ if(HAS_VTA)
     PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
 endif()
 add_library(osd STATIC ${osd_srcs}
-  $<TARGET_OBJECTS:cls_references_objs>
   $<TARGET_OBJECTS:global_common_objs>)
-target_link_libraries(osd PRIVATE
+target_link_libraries(osd
+  PUBLIC dmclock::dmclock
+  PRIVATE
   ${LEVELDB_LIBRARIES}
-  dmclock heap_profiler cpu_profiler ${CMAKE_DL_LIBS})
+  heap_profiler cpu_profiler ${CMAKE_DL_LIBS})
 if(WITH_LTTNG)
   add_dependencies(osd osd-tp pg-tp)
 endif()
index 0f9981c62049bb6de44fbb4a56ed13158cc7e869..9b6667b9bc2c2762cdcfa98506a74f9a58813b4e 100644 (file)
@@ -46,7 +46,9 @@ add_executable(unittest_mclock_priority_queue
   test_mclock_priority_queue.cc
   )
 add_ceph_unittest(unittest_mclock_priority_queue)
-target_link_libraries(unittest_mclock_priority_queue ceph-common dmclock)
+target_link_libraries(unittest_mclock_priority_queue
+  ceph-common
+  dmclock::dmclock)
 
 # unittest_str_map
 add_executable(unittest_str_map