]> git.proxmox.com Git - ceph.git/blob - ceph/src/tools/ceph-dencoder/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / tools / ceph-dencoder / CMakeLists.txt
1 ## dencoder
2 set_source_files_properties(
3 ceph_dencoder.cc
4 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)
5
6 if(HAS_VTA)
7 set_source_files_properties(ceph_dencoder.cc
8 PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
9 endif()
10
11 set(dencoder_srcs
12 ceph_dencoder.cc
13 ../../include/uuid.cc
14 ../../include/utime.cc
15 $<TARGET_OBJECTS:common_texttable_obj>)
16 add_executable(ceph-dencoder ${dencoder_srcs})
17 set_target_properties(ceph-dencoder PROPERTIES
18 JOB_POOL_COMPILE heavy_compile_job_pool
19 JOB_POOL_LINK heavy_link_job_pool)
20
21 set(denc_plugin_dir ${CEPH_INSTALL_FULL_PKGLIBDIR}/denc)
22 add_custom_target(ceph-dencoder-modules)
23
24 function(add_denc_mod name)
25 add_library(${name} SHARED
26 ${ARGN})
27 set_target_properties(${name} PROPERTIES
28 PREFIX ""
29 OUTPUT_NAME ${name}
30 CXX_VISIBILITY_PRESET hidden
31 VISIBILITY_INLINES_HIDDEN ON)
32 install(
33 TARGETS ${name}
34 DESTINATION ${denc_plugin_dir})
35 add_dependencies(ceph-dencoder-modules
36 ${name})
37 endfunction()
38
39 add_denc_mod(denc-mod-common
40 common_types.cc)
41 target_link_libraries(denc-mod-common
42 journal
43 cls_cas_internal
44 cls_lock_client
45 cls_refcount_client
46 cls_timeindex_client)
47 add_denc_mod(denc-mod-osd
48 osd_types.cc)
49 target_link_libraries(denc-mod-osd
50 os
51 osd
52 mon
53 erasure_code
54 global)
55
56 if(WITH_RADOSGW)
57 add_denc_mod(denc-mod-rgw
58 rgw_types.cc
59 ${CMAKE_SOURCE_DIR}/src/rgw/rgw_dencoder.cc)
60 target_include_directories(denc-mod-rgw
61 SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/src/rgw")
62 target_link_libraries(denc-mod-rgw
63 rgw_a
64 cls_rgw_client
65 cls_journal_client)
66 if(WITH_RADOSGW_AMQP_ENDPOINT)
67 target_link_libraries(denc-mod-rgw
68 rabbitmq ssl)
69 endif()
70 if(WITH_RADOSGW_KAFKA_ENDPOINT)
71 target_link_libraries(denc-mod-rgw
72 rdkafka)
73 endif()
74 endif()
75
76 if(WITH_RBD)
77 add_denc_mod(denc-mod-rbd
78 rbd_types.cc)
79 target_link_libraries(denc-mod-rbd
80 cls_rbd_client
81 rbd_mirror_types
82 rbd_types
83 rbd_replay_types)
84 if(WITH_KRBD)
85 target_link_libraries(denc-mod-rbd
86 krbd)
87 endif()
88 endif()
89
90 if(WITH_CEPHFS)
91 add_denc_mod(denc-mod-cephfs
92 mds_types.cc)
93 target_link_libraries(denc-mod-cephfs
94 mds)
95 endif()
96
97 target_compile_definitions(ceph-dencoder PRIVATE
98 "CEPH_DENC_MOD_DIR=\"${denc_plugin_dir}\"")
99
100 target_link_libraries(ceph-dencoder
101 StdFilesystem::filesystem
102 global
103 ${DENCODER_EXTRALIBS}
104 cls_log_client
105 cls_version_client
106 cls_user_client
107 cls_cas_client
108 ${EXTRALIBS}
109 ${CMAKE_DL_LIBS}
110 ${ALLOC_LIBS})
111 install(TARGETS ceph-dencoder DESTINATION bin)