]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: librbd fixes
authorAli Maredia <amaredia@redhat.com>
Tue, 2 Feb 2016 02:14:44 +0000 (21:14 -0500)
committerAli Maredia <amaredia@redhat.com>
Fri, 15 Apr 2016 00:48:21 +0000 (20:48 -0400)
Added src/librbd and test/librbd CMakeLists.txt's,
various previously missing libraries and targets,
revised unittest_librbd.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
src/CMakeLists.txt
src/librbd/CMakeLists.txt [new file with mode: 0644]
src/test/CMakeLists.txt
src/test/librbd/CMakeLists.txt [new file with mode: 0644]

index c66b1312f5bd1ce0b9fdbca52a8b4ffc6a28e24c..940cad0607a356d3ad2eddb5deeee33f9478156b 100644 (file)
@@ -529,7 +529,7 @@ add_subdirectory(pybind)
 ## dencoder
 set(dencoder_srcs
   test/encoding/ceph_dencoder.cc
-  krbd.cc
+  $<TARGET_OBJECTS:krbd_objs>
   common/secret.c
   common/TextTable.cc
   )
@@ -992,81 +992,11 @@ set(journal_srcs
   journal/Utils.cc)
 add_library(journal ${journal_srcs})
 
+add_library(krbd_objs OBJECT krbd.cc)
+
 if(${WITH_RBD})
-  set(librbd_srcs
-    krbd.cc
-    common/ContextCompletion.cc
-    librbd/AioCompletion.cc
-    librbd/AioImageRequest.cc
-    librbd/AioImageRequestWQ.cc
-    librbd/AioObjectRequest.cc
-    librbd/AsyncObjectThrottle.cc
-    librbd/AsyncOperation.cc
-    librbd/AsyncRequest.cc
-    librbd/CopyupRequest.cc
-    librbd/DiffIterate.cc
-    librbd/ExclusiveLock.cc
-    librbd/ImageCtx.cc
-    librbd/ImageState.cc
-    librbd/ImageWatcher.cc
-    librbd/internal.cc
-    librbd/Journal.cc
-    librbd/librbd.cc
-    librbd/LibrbdAdminSocketHook.cc
-    librbd/LibrbdWriteback.cc
-    librbd/MirroringWatcher.cc
-    librbd/ObjectMap.cc
-    librbd/ObjectWatcher.cc
-    librbd/Operations.cc
-    librbd/Utils.cc
-    librbd/exclusive_lock/AcquireRequest.cc
-    librbd/exclusive_lock/ReleaseRequest.cc
-    librbd/exclusive_lock/StandardPolicy.cc
-    librbd/image/CloseRequest.cc
-    librbd/image/OpenRequest.cc
-    librbd/image/RefreshParentRequest.cc
-    librbd/image/RefreshRequest.cc
-    librbd/image/SetSnapRequest.cc
-    librbd/image_watcher/Notifier.cc
-    librbd/image_watcher/NotifyLockOwner.cc
-    librbd/journal/Replay.cc
-    librbd/journal/StandardPolicy.cc
-    librbd/journal/Types.cc
-    librbd/mirroring_watcher/Types.cc
-    librbd/object_map/InvalidateRequest.cc
-    librbd/object_map/LockRequest.cc
-    librbd/object_map/Request.cc
-    librbd/object_map/RefreshRequest.cc
-    librbd/object_map/ResizeRequest.cc
-    librbd/object_map/SnapshotCreateRequest.cc
-    librbd/object_map/SnapshotRemoveRequest.cc
-    librbd/object_map/SnapshotRollbackRequest.cc
-    librbd/object_map/UnlockRequest.cc
-    librbd/object_map/UpdateRequest.cc
-    librbd/operation/FlattenRequest.cc
-    librbd/operation/RebuildObjectMapRequest.cc
-    librbd/operation/RenameRequest.cc
-    librbd/operation/Request.cc
-    librbd/operation/ResizeRequest.cc
-    librbd/operation/SnapshotCreateRequest.cc
-    librbd/operation/SnapshotProtectRequest.cc
-    librbd/operation/SnapshotRemoveRequest.cc
-    librbd/operation/SnapshotRenameRequest.cc
-    librbd/operation/SnapshotRollbackRequest.cc
-    librbd/operation/SnapshotUnprotectRequest.cc
-    librbd/operation/TrimRequest.cc
-    librbd/WatchNotifyTypes.cc)
-  add_library(librbd ${CEPH_SHARED} ${librbd_srcs}
-    $<TARGET_OBJECTS:osdc_rbd_objs>
-    $<TARGET_OBJECTS:common_util_obj>)
-  target_link_libraries(librbd LINK_PRIVATE librados common journal
-    cls_lock_client cls_rbd_client cls_journal_client udev
-    ${CMAKE_DL_LIBS})
-  if(${ENABLE_SHARED})
-    set_target_properties(librbd PROPERTIES VERSION "1.0.0" SOVERSION "1"
-      OUTPUT_NAME rbd)
-  endif(${ENABLE_SHARED})
-  install(TARGETS librados librbd DESTINATION lib)
+  add_subdirectory(librbd)
+
   set(rbd_srcs
     tools/rbd/rbd.cc
     tools/rbd/ArgumentTypes.cc
diff --git a/src/librbd/CMakeLists.txt b/src/librbd/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8254a2e
--- /dev/null
@@ -0,0 +1,91 @@
+add_library(rbd_types STATIC
+  journal/Types.cc
+  mirroring_watcher/Types.cc 
+  WatchNotifyTypes.cc)
+
+set(librbd_internal_srcs
+  AioCompletion.cc
+  AioImageRequest.cc
+  AioImageRequestWQ.cc
+  AioObjectRequest.cc
+  AsyncObjectThrottle.cc
+  AsyncOperation.cc
+  AsyncRequest.cc
+  CopyupRequest.cc
+  DiffIterate.cc
+  ExclusiveLock.cc
+  ImageCtx.cc
+  ImageState.cc
+  ImageWatcher.cc
+  internal.cc
+  Journal.cc
+  LibrbdAdminSocketHook.cc
+  LibrbdWriteback.cc
+  MirroringWatcher.cc 
+  ObjectMap.cc
+  ObjectWatcher.cc 
+  Operations.cc
+  Utils.cc
+  exclusive_lock/AcquireRequest.cc
+  exclusive_lock/ReleaseRequest.cc
+  exclusive_lock/StandardPolicy.cc
+  image/CloseRequest.cc
+  image/OpenRequest.cc
+  image/RefreshParentRequest.cc
+  image/RefreshRequest.cc
+  image/SetSnapRequest.cc
+  image_watcher/Notifier.cc
+  image_watcher/NotifyLockOwner.cc
+  journal/Replay.cc
+  journal/StandardPolicy.cc
+  object_map/InvalidateRequest.cc
+  object_map/LockRequest.cc
+  object_map/Request.cc
+  object_map/RefreshRequest.cc
+  object_map/ResizeRequest.cc
+  object_map/SnapshotCreateRequest.cc
+  object_map/SnapshotRemoveRequest.cc
+  object_map/SnapshotRollbackRequest.cc
+  object_map/UnlockRequest.cc
+  object_map/UpdateRequest.cc
+  operation/FlattenRequest.cc
+  operation/RebuildObjectMapRequest.cc
+  operation/RenameRequest.cc
+  operation/Request.cc
+  operation/ResizeRequest.cc
+  operation/SnapshotCreateRequest.cc
+  operation/SnapshotProtectRequest.cc
+  operation/SnapshotRemoveRequest.cc
+  operation/SnapshotRenameRequest.cc
+  operation/SnapshotRollbackRequest.cc
+  operation/SnapshotUnprotectRequest.cc
+  operation/TrimRequest.cc)
+
+add_library(rbd_api STATIC librbd.cc)
+add_library(rbd_internal STATIC ${librbd_internal_srcs})
+
+add_library(librbd ${CEPH_SHARED}
+  $<TARGET_OBJECTS:osdc_rbd_objs>
+  $<TARGET_OBJECTS:common_util_obj>
+  $<TARGET_OBJECTS:krbd_objs>
+  ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+  librbd.cc)
+target_link_libraries(librbd PRIVATE 
+  rbd_internal
+  rbd_types
+  journal
+  librados 
+  common 
+  osdc
+  cls_rbd_client 
+  cls_lock_client 
+  cls_journal_client 
+  pthread
+  udev
+  ${CMAKE_DL_LIBS}
+  ${EXTRALIBS})
+if(${ENABLE_SHARED})
+  set_target_properties(librbd PROPERTIES VERSION "1.0.0" SOVERSION "1"
+    OUTPUT_NAME rbd)
+endif(${ENABLE_SHARED})
+install(TARGETS librbd DESTINATION lib)
index c8d2e1af24c7233b58205bc22c82c7dd90aa4228..3e37c1e213c86f3e985053c08cc30b292f335794 100644 (file)
@@ -18,6 +18,7 @@ add_subdirectory(filestore)
 add_subdirectory(journal)
 add_subdirectory(libcephfs)
 add_subdirectory(librados_test_stub)
+add_subdirectory(librbd)
 add_subdirectory(messenger)
 add_subdirectory(msgr)
 add_subdirectory(ObjectMap)
@@ -233,59 +234,6 @@ add_executable(ceph_multi_stress_watch
 target_link_libraries(ceph_multi_stress_watch librados global radostest
   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
 
-# unittest_librbd
-add_executable(unittest_librbd EXCLUDE_FROM_ALL
-  librbd/test_librbd.cc
-  librbd/test_fixture.cc
-  librbd/test_ImageWatcher.cc
-  librbd/test_internal.cc
-  librbd/test_support.cc
-  librbd/test_main.cc
-  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
-  ${CMAKE_SOURCE_DIR}/src/common/secret.c
-  )
-add_dependencies(check unittest_librbd)
-set_target_properties(unittest_librbd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
-if(${WITH_LTTNG})
-  target_link_libraries(unittest_librbd librbd_tp)
-endif(${WITH_LTTNG})
-target_link_libraries(unittest_librbd
-  librbd
-  librados
-  journal
-  cls_journal_client
-  librados_api
-  rados_test_stub
-  ${UNITTEST_LIBS}
-  global
-  ${CMAKE_DL_LIBS}
-  ${CRYPTO_LIBS}
-  ${EXTRALIBS}
-  blkid
-  udev
-  keyutils
-  radostest
-  )
-
-add_executable(test_librbd_fsx
-  librbd/fsx.cc
-  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
-  ${CMAKE_SOURCE_DIR}/src/common/secret.c
-  )
-target_link_libraries(test_librbd_fsx
-  librbd
-  librados
-  global
-  m
-  ${CMAKE_DL_LIBS}
-  ${CRYPTO_LIBS}
-  ${EXTRALIBS}
-  blkid
-  udev
-  keyutils
-  )
-
 #ceph_perf_local
 add_executable(ceph_perf_local 
   perf_local.cc
diff --git a/src/test/librbd/CMakeLists.txt b/src/test/librbd/CMakeLists.txt
new file mode 100644 (file)
index 0000000..070e910
--- /dev/null
@@ -0,0 +1,135 @@
+set(librbd_test
+  test_fixture.cc
+  test_support.cc
+  test_librbd.cc
+  test_ImageWatcher.cc
+  test_internal.cc
+  test_mirroring.cc
+  test_MirroringWatcher.cc 
+  test_ObjectMap.cc
+  journal/test_Entries.cc
+  journal/test_Replay.cc)
+add_library(rbd_test STATIC ${librbd_test})
+set_target_properties(rbd_test PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+
+# unittest_librbd
+# doesn't use add_ceph_test because it is called by run-rbd-unit-tests.sh
+set(unittest_librbd_srcs
+  test_main.cc
+  test_mock_fixture.cc 
+  test_mock_ExclusiveLock.cc 
+  test_mock_Journal.cc 
+  test_mock_ObjectWatcher.cc 
+  exclusive_lock/test_mock_AcquireRequest.cc 
+  exclusive_lock/test_mock_ReleaseRequest.cc 
+  image/test_mock_RefreshRequest.cc
+  journal/test_mock_Replay.cc 
+  object_map/test_mock_InvalidateRequest.cc 
+  object_map/test_mock_LockRequest.cc 
+  object_map/test_mock_RefreshRequest.cc 
+  object_map/test_mock_ResizeRequest.cc 
+  object_map/test_mock_SnapshotCreateRequest.cc 
+  object_map/test_mock_SnapshotRemoveRequest.cc 
+  object_map/test_mock_SnapshotRollbackRequest.cc 
+  object_map/test_mock_UnlockRequest.cc 
+  object_map/test_mock_UpdateRequest.cc 
+  operation/test_mock_ResizeRequest.cc 
+  operation/test_mock_SnapshotCreateRequest.cc 
+  operation/test_mock_SnapshotProtectRequest.cc 
+  operation/test_mock_SnapshotRemoveRequest.cc 
+  operation/test_mock_SnapshotRollbackRequest.cc 
+  operation/test_mock_SnapshotUnprotectRequest.cc
+  )
+add_executable(unittest_librbd EXCLUDE_FROM_ALL
+  ${unittest_librbd_srcs}
+  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+  ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+  $<TARGET_OBJECTS:parse_secret_objs>
+  )
+target_compile_definitions(unittest_librbd PUBLIC "-DTEST_LIBRBD_INTERNALS")
+set_target_properties(unittest_librbd PROPERTIES COMPILE_FLAGS
+  ${UNITTEST_CXX_FLAGS})
+target_link_libraries(unittest_librbd
+  cls_rbd
+  cls_rbd_client
+  cls_lock
+  cls_lock_client
+  journal
+  cls_journal_client
+  rados_test_stub
+  librados
+  librados_api
+  rbd_test
+  rbd_api
+  rbd_internal
+  rbd_types
+  osdc
+  global
+  ${UNITTEST_LIBS}
+  radostest
+  keyutils
+  )
+
+add_executable(ceph_test_librbd
+  test_main.cc
+  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+  ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+  $<TARGET_OBJECTS:parse_secret_objs>
+  )
+target_link_libraries(ceph_test_librbd
+  rados_test_stub
+  librados
+  rbd_test
+  rbd_api
+  rbd_internal
+  rbd_types
+  journal
+  cls_journal_client
+  cls_rbd_client
+  cls_lock_client
+  osdc
+  global
+  ${UNITTEST_LIBS}
+  radostest
+  keyutils
+  )
+set_target_properties(ceph_test_librbd PROPERTIES COMPILE_FLAGS
+  ${UNITTEST_CXX_FLAGS})
+
+add_executable(ceph_test_librbd_api
+  test_support.cc
+  test_librbd.cc
+  test_main.cc
+  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+  $<TARGET_OBJECTS:parse_secret_objs>
+  )
+target_link_libraries(ceph_test_librbd_api
+  librbd
+  librados
+  common
+  radostest
+  ${UNITTEST_LIBS}
+  keyutils
+  )
+set_target_properties(ceph_test_librbd_api PROPERTIES COMPILE_FLAGS
+  ${UNITTEST_CXX_FLAGS})
+
+add_executable(ceph_test_librbd_fsx
+  fsx.cc
+  $<TARGET_OBJECTS:krbd_objs>
+  ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+  ${CMAKE_SOURCE_DIR}/src/common/secret.c
+  )
+target_link_libraries(ceph_test_librbd_fsx
+  librbd
+  librados
+  global
+  m
+  ${CMAKE_DL_LIBS}
+  ${CRYPTO_LIBS}
+  ${EXTRALIBS}
+  blkid
+  udev
+  keyutils
+  )
+