]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/CMakeLists.txt
import quincy beta 17.1.0
[ceph.git] / ceph / src / librbd / CMakeLists.txt
index bcdc8af8e26839bf5b6851e236f88af3fc0fabb0..ad23f0975fdd4388fdb7101670fbf9d8205e12a0 100644 (file)
@@ -1,13 +1,27 @@
-add_library(rbd_types STATIC
+set(librbd_types_srcs
   journal/Types.cc
   mirroring_watcher/Types.cc
   trash_watcher/Types.cc
   watcher/Types.cc
   WatchNotifyTypes.cc)
 
+if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
+ list(APPEND librbd_types_srcs cache/pwl/Types.cc)
+endif()
+
+add_library(rbd_types STATIC
+  ${librbd_types_srcs})
+
+if (WITH_RBD_RWL)
+  target_link_libraries(rbd_types
+    PUBLIC pmem::pmemobj)
+endif()
+
 set(librbd_internal_srcs
+  AsioEngine.cc
   AsyncObjectThrottle.cc
   AsyncRequest.cc
+  ConfigWatcher.cc
   DeepCopyRequest.cc
   ExclusiveLock.cc
   ImageCtx.cc
@@ -20,6 +34,7 @@ set(librbd_internal_srcs
   MirroringWatcher.cc
   ObjectMap.cc
   Operations.cc
+  PluginRegistry.cc
   TrashWatcher.cc
   Utils.cc
   Watcher.cc
@@ -27,6 +42,7 @@ set(librbd_internal_srcs
   api/DiffIterate.cc
   api/Group.cc
   api/Image.cc
+  api/Io.cc
   api/Migration.cc
   api/Mirror.cc
   api/Namespace.cc
@@ -34,12 +50,21 @@ set(librbd_internal_srcs
   api/PoolMetadata.cc
   api/Snapshot.cc
   api/Trash.cc
+  api/Utils.cc
+  asio/ContextWQ.cc
   cache/ImageWriteback.cc
   cache/ObjectCacherObjectDispatch.cc
-  cache/ParentCacheObjectDispatch.cc
   cache/ObjectCacherWriteback.cc
-  cache/PassthroughImageCache.cc
   cache/WriteAroundObjectDispatch.cc
+  crypto/BlockCrypto.cc
+  crypto/CryptoContextPool.cc
+  crypto/CryptoImageDispatch.cc
+  crypto/CryptoObjectDispatch.cc
+  crypto/FormatRequest.cc
+  crypto/LoadRequest.cc
+  crypto/ShutDownCryptoRequest.cc
+  crypto/Utils.cc
+  crypto/openssl/DataCryptor.cc
   deep_copy/ImageCopyRequest.cc
   deep_copy/MetadataCopyRequest.cc
   deep_copy/ObjectCopyRequest.cc
@@ -48,6 +73,7 @@ set(librbd_internal_srcs
   deep_copy/SnapshotCreateRequest.cc
   deep_copy/Utils.cc
   exclusive_lock/AutomaticPolicy.cc
+  exclusive_lock/ImageDispatch.cc
   exclusive_lock/PreAcquireRequest.cc
   exclusive_lock/PostAcquireRequest.cc
   exclusive_lock/PreReleaseRequest.cc
@@ -73,16 +99,24 @@ set(librbd_internal_srcs
   io/AioCompletion.cc
   io/AsyncOperation.cc
   io/CopyupRequest.cc
+  io/FlushTracker.cc
+  io/ImageDispatch.cc
   io/ImageDispatchSpec.cc
+  io/ImageDispatcher.cc
   io/ImageRequest.cc
-  io/ImageRequestWQ.cc
   io/ObjectDispatch.cc
   io/ObjectDispatchSpec.cc
   io/ObjectDispatcher.cc
   io/ObjectRequest.cc
+  io/QosImageDispatch.cc
+  io/QueueImageDispatch.cc
   io/ReadResult.cc
+  io/RefreshImageDispatch.cc
   io/SimpleSchedulerObjectDispatch.cc
+  io/Types.cc
   io/Utils.cc
+  io/WriteBlockImageDispatch.cc
+  io/IoOperations.cc
   journal/CreateRequest.cc
   journal/DemoteRequest.cc
   journal/ObjectDispatch.cc
@@ -99,6 +133,18 @@ set(librbd_internal_srcs
   managed_lock/ReacquireRequest.cc
   managed_lock/ReleaseRequest.cc
   managed_lock/Utils.cc
+  migration/FileStream.cc
+  migration/HttpClient.cc
+  migration/HttpStream.cc
+  migration/ImageDispatch.cc
+  migration/NativeFormat.cc
+  migration/OpenSourceImageRequest.cc
+  migration/QCOWFormat.cc
+  migration/RawFormat.cc
+  migration/RawSnapshot.cc
+  migration/S3Stream.cc
+  migration/SourceSpecBuilder.cc
+  migration/Utils.cc
   mirror/DemoteRequest.cc
   mirror/DisableRequest.cc
   mirror/EnableRequest.cc
@@ -153,6 +199,7 @@ set(librbd_internal_srcs
   operation/SnapshotLimitRequest.cc
   operation/SparsifyRequest.cc
   operation/TrimRequest.cc
+  plugin/Api.cc
   trash/MoveRequest.cc
   trash/RemoveRequest.cc
   watcher/Notifier.cc
@@ -163,16 +210,12 @@ if(WITH_EVENTTRACE)
   list(APPEND librbd_internal_srcs ../common/EventTrace.cc)
 endif()
 
-if(WITH_RBD_RWL)
-  set(librbd_internal_srcs
-    ${librbd_internal_srcs}
-    cache/rwl/ImageCacheState.cc
-    cache/rwl/LogEntry.cc
-    cache/rwl/LogOperation.cc
-    cache/rwl/Request.cc
-    cache/rwl/SyncPoint.cc
-    cache/rwl/Types.cc
-    cache/ReplicatedWriteLog.cc)
+if(LINUX AND HAVE_LIBCRYPTSETUP)
+  list(APPEND librbd_internal_srcs
+          crypto/luks/EncryptionFormat.cc
+          crypto/luks/Header.cc
+          crypto/luks/FormatRequest.cc
+          crypto/luks/LoadRequest.cc)
 endif()
 
 add_library(rbd_api STATIC librbd.cc)
@@ -189,13 +232,90 @@ if(WITH_EVENTTRACE)
   add_dependencies(rbd_internal eventtrace_tp)
 endif()
 target_link_libraries(rbd_internal PRIVATE
-  ceph_immutable_object_cache_lib
-  osdc)
+  osdc rbd_types
+  OpenSSL::SSL)
+target_include_directories(rbd_internal PRIVATE ${OPENSSL_INCLUDE_DIR})
+if(LINUX AND HAVE_LIBCRYPTSETUP)
+  target_include_directories(rbd_internal PRIVATE ${LIBCRYPTSETUP_INCLUDE_DIR})
+  target_link_libraries(rbd_internal PRIVATE ${LIBCRYPTSETUP_LIBRARIES})
+endif()
+
+add_custom_target(librbd_plugins)
+set(librbd_plugins_dir ${CEPH_INSTALL_PKGLIBDIR}/librbd)
+
+set(rbd_plugin_parent_cache_srcs
+  cache/ParentCacheObjectDispatch.cc
+  plugin/ParentCache.cc)
+add_library(librbd_plugin_parent_cache SHARED
+  ${rbd_plugin_parent_cache_srcs})
+target_link_libraries(librbd_plugin_parent_cache PRIVATE
+  ceph_immutable_object_cache_lib ceph-common librbd
+  libneorados
+  librados)
+set_target_properties(librbd_plugin_parent_cache PROPERTIES
+  OUTPUT_NAME ceph_librbd_parent_cache
+  VERSION 1.0.0
+  SOVERSION 1)
+install(TARGETS librbd_plugin_parent_cache DESTINATION ${librbd_plugins_dir})
+add_dependencies(librbd_plugins librbd_plugin_parent_cache)
+
+if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
+  set(rbd_plugin_pwl_srcs
+    cache/WriteLogImageDispatch.cc
+    cache/pwl/AbstractWriteLog.cc
+    cache/pwl/DiscardRequest.cc
+    cache/pwl/ImageCacheState.cc
+    cache/pwl/InitRequest.cc
+    cache/pwl/LogEntry.cc
+    cache/pwl/LogMap.cc
+    cache/pwl/LogOperation.cc
+    cache/pwl/Request.cc
+    cache/pwl/ShutdownRequest.cc
+    cache/pwl/SyncPoint.cc
+    cache/pwl/Types.cc
+    plugin/WriteLogImageCache.cc)
+
+    if(WITH_RBD_SSD_CACHE)
+      set(rbd_plugin_pwl_srcs
+        ${rbd_plugin_pwl_srcs}
+        cache/pwl/ssd/LogEntry.cc
+        cache/pwl/ssd/LogOperation.cc
+        cache/pwl/ssd/ReadRequest.cc
+        cache/pwl/ssd/Request.cc
+        cache/pwl/ssd/WriteLog.cc)
+    endif()
+    if(WITH_RBD_RWL)
+      set(rbd_plugin_pwl_srcs
+        ${rbd_plugin_pwl_srcs}
+        cache/pwl/rwl/WriteLog.cc
+        cache/pwl/rwl/LogEntry.cc
+        cache/pwl/rwl/LogOperation.cc
+        cache/pwl/rwl/ReadRequest.cc
+        cache/pwl/rwl/Request.cc)
+    endif()
+
+  add_library(librbd_plugin_pwl_cache SHARED
+    ${rbd_plugin_pwl_srcs})
+  target_link_libraries(librbd_plugin_pwl_cache PRIVATE
+    blk
+    ceph-common
+    cls_rbd_client
+    libneorados
+    librados
+    StdFilesystem::filesystem)
+
+  if(WITH_RBD_RWL)
+    target_link_libraries(librbd_plugin_pwl_cache
+      PUBLIC pmem::pmemobj
+      PRIVATE pmem::pmem)
+  endif()
 
-if(WITH_RBD_RWL)
-  target_link_libraries(rbd_internal PRIVATE
-    pmem::pmemobj
-    pmem::pmem)
+  set_target_properties(librbd_plugin_pwl_cache PROPERTIES
+    OUTPUT_NAME ceph_librbd_pwl_cache
+    VERSION 1.0.0
+    SOVERSION 1)
+  install(TARGETS librbd_plugin_pwl_cache DESTINATION ${librbd_plugins_dir})
+  add_dependencies(librbd_plugins librbd_plugin_pwl_cache)
 endif()
 
 add_library(librbd ${CEPH_SHARED}
@@ -208,10 +328,11 @@ target_link_libraries(librbd PRIVATE
   rbd_internal
   rbd_types
   journal
+  cls_rbd_client
+  cls_lock_client
+  cls_journal_client
+  libneorados
   librados
-  cls_rbd_client 
-  cls_lock_client 
-  cls_journal_client 
   ceph-common
   pthread
   ${CMAKE_DL_LIBS}
@@ -223,11 +344,11 @@ endif()
 if(ENABLE_SHARED)
   set_target_properties(librbd PROPERTIES
     OUTPUT_NAME rbd
-    VERSION 1.12.0
+    VERSION 1.17.0
     SOVERSION 1
     CXX_VISIBILITY_PRESET hidden
     VISIBILITY_INLINES_HIDDEN ON)
-    if(NOT APPLE)
+    if(NOT APPLE AND NOT WIN32)
       set_property(TARGET librbd APPEND_STRING PROPERTY
         LINK_FLAGS " -Wl,--exclude-libs,ALL")
     endif()