summaryrefslogtreecommitdiffstats
path: root/src/tools/ceph-dencoder/CMakeLists.txt
blob: a92ac5e6997381e091cdb7fbcabaa0649a71fd28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
## dencoder
set_source_files_properties(
  ceph_dencoder.cc
  APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)

if(HAS_VTA)
  set_source_files_properties(ceph_dencoder.cc
    PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
endif()

set(dencoder_srcs
  ceph_dencoder.cc
  ../../include/uuid.cc
  ../../include/utime.cc
  $<TARGET_OBJECTS:common_texttable_obj>)
add_executable(ceph-dencoder ${dencoder_srcs})

set(denc_plugin_dir ${CEPH_INSTALL_PKGLIBDIR}/denc)
add_custom_target(ceph-dencoder-modules)

function(add_denc_mod name)
  add_library(${name} SHARED
    ${ARGN})
  set_target_properties(${name} PROPERTIES
    PREFIX ""
    OUTPUT_NAME ${name}
    CXX_VISIBILITY_PRESET hidden
    VISIBILITY_INLINES_HIDDEN ON)
  install(
    TARGETS ${name}
    DESTINATION ${denc_plugin_dir})
  add_dependencies(ceph-dencoder-modules
    ${name})
endfunction()

add_denc_mod(denc-mod-common
  common_types.cc)
target_link_libraries(denc-mod-common
  journal
  cls_cas_internal
  cls_lock_client
  cls_refcount_client
  cls_timeindex_client)
add_denc_mod(denc-mod-osd
  osd_types.cc)
target_link_libraries(denc-mod-osd
  os
  osd
  mon
  erasure_code)

if(WITH_RADOSGW)
  add_denc_mod(denc-mod-rgw
    rgw_types.cc
    ${CMAKE_SOURCE_DIR}/src/rgw/rgw_dencoder.cc)
  target_link_libraries(denc-mod-rgw
    rgw_a
    cls_rgw_client
    cls_journal_client)
  if(WITH_RADOSGW_AMQP_ENDPOINT)
    target_link_libraries(denc-mod-rgw
      rabbitmq ssl)
  endif()
  if(WITH_RADOSGW_KAFKA_ENDPOINT)
    target_link_libraries(denc-mod-rgw
      rdkafka)
  endif()
  if(WITH_RADOSGW_LUA_PACKAGES)
    target_link_libraries(denc-mod-rgw
      Boost::filesystem)
  endif()
endif()

if(WITH_RBD)
  add_denc_mod(denc-mod-rbd
    rbd_types.cc)
  target_link_libraries(denc-mod-rbd
    cls_rbd_client
    rbd_mirror_types
    rbd_types
    rbd_replay_types)
  if(WITH_KRBD)
    target_link_libraries(denc-mod-rbd
      krbd)
  endif()
endif()

if(WITH_CEPHFS)
  add_denc_mod(denc-mod-cephfs
    mds_types.cc)
  target_link_libraries(denc-mod-cephfs
    mds)
endif()

target_compile_definitions(ceph-dencoder PRIVATE
  "CEPH_DENC_MOD_DIR=\"${denc_plugin_dir}\"")

target_link_libraries(ceph-dencoder
  StdFilesystem::filesystem
  global
  ${DENCODER_EXTRALIBS}
  cls_log_client
  cls_version_client
  cls_user_client
  cls_cas_client
  ${ALLOC_LIBS}
  ${EXTRALIBS}
  ${CMAKE_DL_LIBS})
install(TARGETS ceph-dencoder DESTINATION bin)