From 8e3e3f45e404530d73e47dcce8eb78a3f0019475 Mon Sep 17 00:00:00 2001 From: Ali Maredia Date: Mon, 1 Feb 2016 21:14:44 -0500 Subject: [PATCH] cmake: librbd fixes Added src/librbd and test/librbd CMakeLists.txt's, various previously missing libraries and targets, revised unittest_librbd. Signed-off-by: Ali Maredia --- src/CMakeLists.txt | 80 ++----------------- src/librbd/CMakeLists.txt | 91 ++++++++++++++++++++++ src/test/CMakeLists.txt | 54 +------------ src/test/librbd/CMakeLists.txt | 135 +++++++++++++++++++++++++++++++++ 4 files changed, 232 insertions(+), 128 deletions(-) create mode 100644 src/librbd/CMakeLists.txt create mode 100644 src/test/librbd/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c66b1312f5bd1..940cad0607a35 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -529,7 +529,7 @@ add_subdirectory(pybind) ## dencoder set(dencoder_srcs test/encoding/ceph_dencoder.cc - krbd.cc + $ 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_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 index 0000000000000..8254a2e8126e0 --- /dev/null +++ b/src/librbd/CMakeLists.txt @@ -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} + $ + $ + $ + ${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) diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index c8d2e1af24c72..3e37c1e213c86 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -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 index 0000000000000..070e9105ea503 --- /dev/null +++ b/src/test/librbd/CMakeLists.txt @@ -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_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_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_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 + $ + ${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 + ) + -- 2.39.5