if(${WITH_RBD})
add_subdirectory(librbd)
+ set(rbd_mirror_internal
+ tools/rbd_mirror/ClusterWatcher.cc
+ tools/rbd_mirror/ImageReplayer.cc
+ tools/rbd_mirror/ImageSync.cc
+ tools/rbd_mirror/Mirror.cc
+ tools/rbd_mirror/PoolWatcher.cc
+ tools/rbd_mirror/Replayer.cc
+ tools/rbd_mirror/Threads.cc
+ tools/rbd_mirror/types.cc
+ tools/rbd_mirror/image_replayer/BootstrapRequest.cc
+ tools/rbd_mirror/image_replayer/CloseImageRequest.cc
+ tools/rbd_mirror/image_replayer/OpenLocalImageRequest.cc
+ tools/rbd_mirror/image_sync/ImageCopyRequest.cc
+ tools/rbd_mirror/image_sync/ObjectCopyRequest.cc
+ tools/rbd_mirror/image_sync/SnapshotCopyRequest.cc
+ tools/rbd_mirror/image_sync/SyncPointCreateRequest.cc
+ tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc)
+ add_library(rbd_mirror_internal STATIC ${rbd_mirror_internal})
+
+ add_executable(rbd-mirror
+ tools/rbd_mirror/main.cc
+ common/ContextCompletion.cc)
+ target_link_libraries(rbd-mirror
+ rbd_mirror_internal
+ rbd_internal
+ rbd_api
+ rbd_types
+ journal
+ librados
+ osdc
+ cls_rbd_client
+ cls_lock_client
+ cls_journal_client
+ global)
+
set(rbd_srcs
tools/rbd/rbd.cc
tools/rbd/ArgumentTypes.cc
--- /dev/null
+set(rbd_mirror_test_srcs
+ test_ClusterWatcher.cc
+ test_PoolWatcher.cc
+ test_ImageReplayer.cc
+ test_ImageSync.cc
+ test_fixture.cc
+ )
+add_library(rbd_mirror STATIC ${rbd_mirror_test_srcs})
+set_target_properties(rbd_mirror PROPERTIES COMPILE_FLAGS
+ ${UNITTEST_CXX_FLAGS})
+
+add_executable(unittest_rbd_mirror EXCLUDE_FROM_ALL
+ test_main.cc
+ test_mock_fixture.cc
+ test_mock_ImageSync.cc
+ image_sync/test_mock_ImageCopyRequest.cc
+ image_sync/test_mock_ObjectCopyRequest.cc
+ image_sync/test_mock_SnapshotCopyRequest.cc
+ image_sync/test_mock_SyncPointCreateRequest.cc
+ image_sync/test_mock_SyncPointPruneRequest.cc
+ mock/MockJournaler.cc
+ ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+ )
+add_ceph_unittest(unittest_rbd_mirror ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_rbd_mirror)
+set_target_properties(unittest_rbd_mirror PROPERTIES COMPILE_FLAGS
+ ${UNITTEST_CXX_FLAGS})
+target_link_libraries(unittest_rbd_mirror
+ rbd_mirror
+ rados_test_stub
+ rbd_mirror_internal
+ rbd_internal
+ rbd_api
+ journal
+ cls_rbd_client
+ cls_lock_client
+ cls_journal_client
+ rbd_types
+ librados
+ osdc
+ global
+ radostest
+ )
+
+add_executable(ceph_test_rbd_mirror
+ test_main.cc
+ ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+ )
+set_target_properties(ceph_test_rbd_mirror PROPERTIES COMPILE_FLAGS
+ ${UNITTEST_CXX_FLAGS})
+target_link_libraries(ceph_test_rbd_mirror
+ rbd_mirror
+ rados_test_stub
+ rbd_mirror_internal
+ rbd_internal
+ rbd_api
+ journal
+ cls_rbd_client
+ cls_lock_client
+ cls_journal_client
+ rbd_types
+ librados
+ osdc
+ global
+ radostest
+ ${UNITTEST_LIBS}
+ )
+