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