]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: build rgw_kmip_client_impl as part of radosgw
authorKefu Chai <kchai@redhat.com>
Sat, 24 Jul 2021 07:39:08 +0000 (15:39 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 24 Jul 2021 11:28:06 +0000 (19:28 +0800)
instead compiling rgw_kmip as an object library, just include
rgw_kmip_client_impl.cc in radosgw. simpler this way, as
rgw_kmip_client_impl.cc includes rgw/rgw_common.h. while rgw_common.cc
is indirectly included by ${rgw_libs} as a part of rgw_a, so
it would be simpler if we just compile rgw_kmip_client_impl.cc
as a part of radosgw, and let radosgw link against ${rgw_libs},
which are able to take care of the include directories of 3rd party
libraries, like spawn/spawn.hpp, which is pulled in by rgw/rgw_common.h.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/rgw/CMakeLists.txt

index 73364c3aedb395ca0b714ea9feb9137ff0a09af9..6f817b6524fbd7e33972fda7e674b5161ea0f09b 100644 (file)
@@ -173,14 +173,6 @@ target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw")
 target_include_directories(rgw_common PRIVATE "${LUA_INCLUDE_DIR}")
 target_include_directories(rgw_common SYSTEM PRIVATE "${ICU_INCLUDE_DIRS}")
 
-
-set(librgw_kmip_srcs
-  rgw_kmip_client_impl.cc)
-
-add_library(rgw_kmip OBJECT ${librgw_kmip_srcs})
-
-target_include_directories(rgw_kmip PRIVATE "${CMAKE_SOURCE_DIR}/src/libkmip")
-
 target_include_directories(rgw_common PRIVATE
   $<TARGET_PROPERTY:spawn,INTERFACE_INCLUDE_DIRECTORIES>)
 target_compile_definitions(rgw_common PRIVATE
@@ -298,11 +290,16 @@ add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs})
 target_link_libraries(rgw_schedulers
   PUBLIC dmclock::dmclock spawn)
 
-add_library(radosgw SHARED ${radosgw_srcs} ${rgw_a_srcs} rgw_main.cc
-  $<TARGET_OBJECTS:rgw_kmip>)
+add_library(radosgw SHARED
+  ${radosgw_srcs}
+  ${rgw_a_srcs}
+  rgw_main.cc
+  rgw_kmip_client_impl.cc)
 
 target_compile_definitions(radosgw PUBLIC "-DCLS_CLIENT_HIDE_IOCTX")
-target_include_directories(radosgw PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
+target_include_directories(radosgw
+  PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src"
+  PRIVATE "${CMAKE_SOURCE_DIR}/src/libkmip")
 target_include_directories(radosgw SYSTEM PUBLIC "../rapidjson/include")
 
 target_link_libraries(radosgw