]> git.proxmox.com Git - ceph.git/blame - ceph/src/crimson/CMakeLists.txt
import quincy beta 17.1.0
[ceph.git] / ceph / src / crimson / CMakeLists.txt
CommitLineData
11fdf7f2 1add_library(crimson::cflags INTERFACE IMPORTED)
9f95a23c
TL
2set(crimson_cflag_definitions "WITH_SEASTAR=1")
3# disable concepts to address https://github.com/boostorg/asio/issues/312
4if((CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10) OR
5 (CMAKE_CXX_COMPILER_ID STREQUAL Clang))
6 list(APPEND crimson_cflag_definitions
7 "BOOST_ASIO_DISABLE_CONCEPTS")
8endif()
11fdf7f2 9set_target_properties(crimson::cflags PROPERTIES
9f95a23c 10 INTERFACE_COMPILE_DEFINITIONS "${crimson_cflag_definitions}"
f67539c2 11 INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CXX>:-Wno-non-virtual-dtor>
11fdf7f2
TL
12 INTERFACE_LINK_LIBRARIES Seastar::seastar)
13
14set(crimson_common_srcs
f67539c2 15 common/assert.cc
9f95a23c 16 common/buffer_io.cc
11fdf7f2 17 common/config_proxy.cc
20effc67 18 common/fatal_signal.cc
f67539c2 19 common/formatter.cc
11fdf7f2 20 common/perf_counters_collection.cc
f67539c2 21 common/log.cc
20effc67
TL
22 common/logclient.cc
23 common/operation.cc
f67539c2
TL
24 common/throttle.cc
25 common/tri_mutex.cc)
11fdf7f2
TL
26
27# the specialized version of ceph-common, where
28# - the logging is sent to Seastar backend
29# - and the template parameter of lock_policy is SINGLE
30add_library(crimson-common STATIC
20effc67 31 ${PROJECT_SOURCE_DIR}/src/auth/Crypto.cc
11fdf7f2
TL
32 ${PROJECT_SOURCE_DIR}/src/common/admin_socket_client.cc
33 ${PROJECT_SOURCE_DIR}/src/common/bit_str.cc
34 ${PROJECT_SOURCE_DIR}/src/common/bloom_filter.cc
9f95a23c 35 ${PROJECT_SOURCE_DIR}/src/common/buffer.cc
f67539c2 36 ${PROJECT_SOURCE_DIR}/src/common/buffer_seastar.cc
11fdf7f2
TL
37 ${PROJECT_SOURCE_DIR}/src/common/ceph_argparse.cc
38 ${PROJECT_SOURCE_DIR}/src/common/ceph_context.cc
39 ${PROJECT_SOURCE_DIR}/src/common/ceph_crypto.cc
40 ${PROJECT_SOURCE_DIR}/src/common/ceph_hash.cc
41 ${PROJECT_SOURCE_DIR}/src/common/ceph_time.cc
42 ${PROJECT_SOURCE_DIR}/src/common/ceph_strings.cc
9f95a23c 43 ${PROJECT_SOURCE_DIR}/src/common/ceph_releases.cc
11fdf7f2
TL
44 ${PROJECT_SOURCE_DIR}/src/common/cmdparse.cc
45 ${PROJECT_SOURCE_DIR}/src/common/common_init.cc
46 ${PROJECT_SOURCE_DIR}/src/common/compat.cc
47 ${PROJECT_SOURCE_DIR}/src/common/code_environment.cc
48 ${PROJECT_SOURCE_DIR}/src/common/config.cc
49 ${PROJECT_SOURCE_DIR}/src/common/config_values.cc
50 ${PROJECT_SOURCE_DIR}/src/common/dout.cc
51 ${PROJECT_SOURCE_DIR}/src/common/entity_name.cc
52 ${PROJECT_SOURCE_DIR}/src/common/environment.cc
53 ${PROJECT_SOURCE_DIR}/src/common/errno.cc
54 ${PROJECT_SOURCE_DIR}/src/common/escape.cc
55 ${PROJECT_SOURCE_DIR}/src/common/hex.cc
56 ${PROJECT_SOURCE_DIR}/src/common/fs_types.cc
f67539c2 57 ${PROJECT_SOURCE_DIR}/src/common/ceph_json.cc
11fdf7f2
TL
58 ${PROJECT_SOURCE_DIR}/src/common/histogram.cc
59 ${PROJECT_SOURCE_DIR}/src/common/hobject.cc
60 ${PROJECT_SOURCE_DIR}/src/common/hostname.cc
61 ${PROJECT_SOURCE_DIR}/src/common/ipaddr.cc
11fdf7f2
TL
62 ${PROJECT_SOURCE_DIR}/src/common/mempool.cc
63 ${PROJECT_SOURCE_DIR}/src/common/options.cc
64 ${PROJECT_SOURCE_DIR}/src/common/perf_counters.cc
65 ${PROJECT_SOURCE_DIR}/src/common/perf_histogram.cc
66 ${PROJECT_SOURCE_DIR}/src/common/page.cc
67 ${PROJECT_SOURCE_DIR}/src/common/pick_address.cc
68 ${PROJECT_SOURCE_DIR}/src/common/snap_types.cc
69 ${PROJECT_SOURCE_DIR}/src/common/signal.cc
70 ${PROJECT_SOURCE_DIR}/src/common/str_list.cc
71 ${PROJECT_SOURCE_DIR}/src/common/str_map.cc
72 ${PROJECT_SOURCE_DIR}/src/common/strtol.cc
73 ${PROJECT_SOURCE_DIR}/src/common/reverse.c
74 ${PROJECT_SOURCE_DIR}/src/common/types.cc
75 ${PROJECT_SOURCE_DIR}/src/common/utf8.c
76 ${PROJECT_SOURCE_DIR}/src/common/version.cc
77 ${PROJECT_SOURCE_DIR}/src/common/BackTrace.cc
78 ${PROJECT_SOURCE_DIR}/src/common/ConfUtils.cc
79 ${PROJECT_SOURCE_DIR}/src/common/DecayCounter.cc
80 ${PROJECT_SOURCE_DIR}/src/common/HTMLFormatter.cc
81 ${PROJECT_SOURCE_DIR}/src/common/Formatter.cc
82 ${PROJECT_SOURCE_DIR}/src/common/Graylog.cc
20effc67 83 ${PROJECT_SOURCE_DIR}/src/common/Journald.cc
9f95a23c 84 ${PROJECT_SOURCE_DIR}/src/common/ostream_temp.cc
11fdf7f2 85 ${PROJECT_SOURCE_DIR}/src/common/LogEntry.cc
11fdf7f2
TL
86 ${PROJECT_SOURCE_DIR}/src/common/TextTable.cc
87 ${PROJECT_SOURCE_DIR}/src/common/Thread.cc
11fdf7f2 88 ${PROJECT_SOURCE_DIR}/src/common/PluginRegistry.cc
9f95a23c
TL
89 ${PROJECT_SOURCE_DIR}/src/common/RefCountedObj.cc
90 ${PROJECT_SOURCE_DIR}/src/common/util.cc
20effc67 91 ${PROJECT_SOURCE_DIR}/src/compressor/Compressor.cc
9f95a23c
TL
92 ${PROJECT_SOURCE_DIR}/src/crush/builder.c
93 ${PROJECT_SOURCE_DIR}/src/crush/mapper.c
94 ${PROJECT_SOURCE_DIR}/src/crush/crush.c
95 ${PROJECT_SOURCE_DIR}/src/crush/hash.c
96 ${PROJECT_SOURCE_DIR}/src/crush/CrushWrapper.cc
97 ${PROJECT_SOURCE_DIR}/src/crush/CrushCompiler.cc
98 ${PROJECT_SOURCE_DIR}/src/crush/CrushTester.cc
99 ${PROJECT_SOURCE_DIR}/src/crush/CrushLocation.cc
100 ${PROJECT_SOURCE_DIR}/src/global/global_context.cc
101 ${PROJECT_SOURCE_DIR}/src/global/pidfile.cc
11fdf7f2 102 ${PROJECT_SOURCE_DIR}/src/librbd/Features.cc
20effc67 103 ${PROJECT_SOURCE_DIR}/src/librbd/io/IoOperations.cc
11fdf7f2
TL
104 ${PROJECT_SOURCE_DIR}/src/log/Log.cc
105 ${PROJECT_SOURCE_DIR}/src/mgr/ServiceMap.cc
106 ${PROJECT_SOURCE_DIR}/src/mds/inode_backtrace.cc
107 ${PROJECT_SOURCE_DIR}/src/mds/mdstypes.cc
f67539c2 108 ${PROJECT_SOURCE_DIR}/src/mds/cephfs_features.cc
11fdf7f2
TL
109 ${PROJECT_SOURCE_DIR}/src/mds/FSMap.cc
110 ${PROJECT_SOURCE_DIR}/src/mds/FSMapUser.cc
111 ${PROJECT_SOURCE_DIR}/src/mds/MDSMap.cc
112 ${PROJECT_SOURCE_DIR}/src/msg/msg_types.cc
113 ${PROJECT_SOURCE_DIR}/src/msg/Message.cc
114 ${PROJECT_SOURCE_DIR}/src/mon/PGMap.cc
115 ${PROJECT_SOURCE_DIR}/src/mon/MonCap.cc
116 ${PROJECT_SOURCE_DIR}/src/mon/MonMap.cc
117 ${PROJECT_SOURCE_DIR}/src/osd/osd_types.cc
118 ${PROJECT_SOURCE_DIR}/src/osd/ECMsgTypes.cc
119 ${PROJECT_SOURCE_DIR}/src/osd/HitSet.cc
120 ${PROJECT_SOURCE_DIR}/src/osd/OSDMap.cc
121 ${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc
9f95a23c 122 ${PROJECT_SOURCE_DIR}/src/xxHash/xxhash.c
11fdf7f2 123 ${crimson_common_srcs}
20effc67
TL
124 $<TARGET_OBJECTS:common_mountcephfs_objs>
125 $<TARGET_OBJECTS:common-options-objs>)
11fdf7f2
TL
126
127target_compile_definitions(crimson-common PRIVATE
20effc67
TL
128 "CMAKE_INSTALL_LIBDIR=\"${CMAKE_INSTALL_LIBDIR}\""
129 "CEPH_INSTALL_FULL_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
130 "CEPH_INSTALL_DATADIR=\"${CEPH_INSTALL_DATADIR}\"")
11fdf7f2 131
9f95a23c
TL
132set(crimson_common_deps
133 Boost::iostreams
f67539c2
TL
134 Boost::random
135 json_spirit)
136
137if(WITH_JAEGER)
138 include_directories(SYSTEM ${CMAKE_BINARY_DIR}/external/include)
20effc67 139 list(APPEND crimson_common_deps ${jaeger_base})
f67539c2 140endif()
9f95a23c
TL
141
142if(NOT WITH_SYSTEM_BOOST)
143 list(APPEND crimson_common_deps ${ZLIB_LIBRARIES})
144endif()
145
11fdf7f2
TL
146target_link_libraries(crimson-common
147 PUBLIC
9f95a23c 148 crimson::cflags
11fdf7f2
TL
149 PRIVATE
150 crc32
9f95a23c
TL
151 ${crimson_common_deps}
152 OpenSSL::Crypto)
11fdf7f2
TL
153
154set(crimson_auth_srcs
9f95a23c
TL
155 auth/KeyRing.cc
156 ${PROJECT_SOURCE_DIR}/src/auth/AuthClientHandler.cc
157 ${PROJECT_SOURCE_DIR}/src/auth/AuthMethodList.cc
158 ${PROJECT_SOURCE_DIR}/src/auth/AuthRegistry.cc
159 ${PROJECT_SOURCE_DIR}/src/auth/AuthSessionHandler.cc
160 ${PROJECT_SOURCE_DIR}/src/auth/Crypto.cc
161 ${PROJECT_SOURCE_DIR}/src/auth/KeyRing.cc
162 ${PROJECT_SOURCE_DIR}/src/auth/RotatingKeyRing.cc
163 ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxAuthorizeHandler.cc
164 ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxClientHandler.cc
165 ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxProtocol.cc
166 ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxSessionHandler.cc
167 ${PROJECT_SOURCE_DIR}/src/auth/none/AuthNoneAuthorizeHandler.cc)
168set(crimson_mgr_srcs
169 mgr/client.cc)
11fdf7f2
TL
170set(crimson_mon_srcs
171 mon/MonClient.cc
172 ${PROJECT_SOURCE_DIR}/src/mon/MonSub.cc)
173set(crimson_net_srcs
f67539c2 174 ${PROJECT_SOURCE_DIR}/src/msg/async/crypto_onwire.cc
20effc67 175 ${PROJECT_SOURCE_DIR}/src/msg/async/compression_onwire.cc
f6b5b4d7 176 ${PROJECT_SOURCE_DIR}/src/msg/async/frames_v2.cc
11fdf7f2
TL
177 net/Errors.cc
178 net/Messenger.cc
179 net/SocketConnection.cc
180 net/SocketMessenger.cc
9f95a23c
TL
181 net/Socket.cc
182 net/Protocol.cc
f67539c2
TL
183 net/ProtocolV2.cc
184 net/chained_dispatchers.cc)
11fdf7f2
TL
185add_library(crimson STATIC
186 ${crimson_auth_srcs}
9f95a23c 187 ${crimson_mgr_srcs}
11fdf7f2 188 ${crimson_mon_srcs}
f67539c2 189 ${crimson_net_srcs})
11fdf7f2
TL
190target_compile_options(crimson PUBLIC
191 "-ftemplate-backtrace-limit=0")
20effc67
TL
192set_target_properties(crimson PROPERTIES
193 JOB_POOL_COMPILE heavy_compile_job_pool)
11fdf7f2
TL
194target_link_libraries(crimson
195 PUBLIC
196 crimson-common
197 crimson::cflags)
f67539c2 198add_subdirectory(admin)
11fdf7f2
TL
199add_subdirectory(os)
200add_subdirectory(osd)
f67539c2 201add_subdirectory(tools)