## dencoder
set(dencoder_srcs
test/encoding/ceph_dencoder.cc
- krbd.cc
+ $<TARGET_OBJECTS:krbd_objs>
common/secret.c
common/TextTable.cc
)
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
--- /dev/null
+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)
add_subdirectory(journal)
add_subdirectory(libcephfs)
add_subdirectory(librados_test_stub)
+add_subdirectory(librbd)
add_subdirectory(messenger)
add_subdirectory(msgr)
add_subdirectory(ObjectMap)
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
--- /dev/null
+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
+ )
+