]> git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/CMakeLists.txt
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / crimson / CMakeLists.txt
1 add_library(crimson::cflags INTERFACE IMPORTED)
2 set_target_properties(crimson::cflags PROPERTIES
3 INTERFACE_COMPILE_DEFINITIONS "WITH_SEASTAR=1"
4 INTERFACE_LINK_LIBRARIES Seastar::seastar)
5
6 set(crimson_common_srcs
7 common/config_proxy.cc
8 common/perf_counters_collection.cc
9 common/assert.cc
10 common/log.cc)
11
12 # the specialized version of ceph-common, where
13 # - the logging is sent to Seastar backend
14 # - and the template parameter of lock_policy is SINGLE
15 add_library(crimson-common STATIC
16 ${PROJECT_SOURCE_DIR}/src/common/admin_socket.cc
17 ${PROJECT_SOURCE_DIR}/src/common/admin_socket_client.cc
18 ${PROJECT_SOURCE_DIR}/src/common/bit_str.cc
19 ${PROJECT_SOURCE_DIR}/src/common/bloom_filter.cc
20 ${PROJECT_SOURCE_DIR}/src/common/ceph_argparse.cc
21 ${PROJECT_SOURCE_DIR}/src/common/ceph_context.cc
22 ${PROJECT_SOURCE_DIR}/src/common/ceph_crypto.cc
23 ${PROJECT_SOURCE_DIR}/src/common/ceph_hash.cc
24 ${PROJECT_SOURCE_DIR}/src/common/ceph_time.cc
25 ${PROJECT_SOURCE_DIR}/src/common/ceph_strings.cc
26 ${PROJECT_SOURCE_DIR}/src/common/cmdparse.cc
27 ${PROJECT_SOURCE_DIR}/src/common/common_init.cc
28 ${PROJECT_SOURCE_DIR}/src/common/compat.cc
29 ${PROJECT_SOURCE_DIR}/src/common/code_environment.cc
30 ${PROJECT_SOURCE_DIR}/src/common/config.cc
31 ${PROJECT_SOURCE_DIR}/src/common/config_values.cc
32 ${PROJECT_SOURCE_DIR}/src/common/dout.cc
33 ${PROJECT_SOURCE_DIR}/src/common/entity_name.cc
34 ${PROJECT_SOURCE_DIR}/src/common/environment.cc
35 ${PROJECT_SOURCE_DIR}/src/common/errno.cc
36 ${PROJECT_SOURCE_DIR}/src/common/escape.cc
37 ${PROJECT_SOURCE_DIR}/src/common/hex.cc
38 ${PROJECT_SOURCE_DIR}/src/common/fs_types.cc
39 ${PROJECT_SOURCE_DIR}/src/common/histogram.cc
40 ${PROJECT_SOURCE_DIR}/src/common/hobject.cc
41 ${PROJECT_SOURCE_DIR}/src/common/hostname.cc
42 ${PROJECT_SOURCE_DIR}/src/common/ipaddr.cc
43 ${PROJECT_SOURCE_DIR}/src/common/lockdep.cc
44 ${PROJECT_SOURCE_DIR}/src/common/mutex_debug.cc
45 ${PROJECT_SOURCE_DIR}/src/common/mempool.cc
46 ${PROJECT_SOURCE_DIR}/src/common/options.cc
47 ${PROJECT_SOURCE_DIR}/src/common/perf_counters.cc
48 ${PROJECT_SOURCE_DIR}/src/common/perf_histogram.cc
49 ${PROJECT_SOURCE_DIR}/src/common/page.cc
50 ${PROJECT_SOURCE_DIR}/src/common/pick_address.cc
51 ${PROJECT_SOURCE_DIR}/src/common/snap_types.cc
52 ${PROJECT_SOURCE_DIR}/src/common/signal.cc
53 ${PROJECT_SOURCE_DIR}/src/common/str_list.cc
54 ${PROJECT_SOURCE_DIR}/src/common/str_map.cc
55 ${PROJECT_SOURCE_DIR}/src/common/strtol.cc
56 ${PROJECT_SOURCE_DIR}/src/common/reverse.c
57 ${PROJECT_SOURCE_DIR}/src/common/types.cc
58 ${PROJECT_SOURCE_DIR}/src/common/utf8.c
59 ${PROJECT_SOURCE_DIR}/src/common/version.cc
60 ${PROJECT_SOURCE_DIR}/src/common/BackTrace.cc
61 ${PROJECT_SOURCE_DIR}/src/common/ConfUtils.cc
62 ${PROJECT_SOURCE_DIR}/src/common/DecayCounter.cc
63 ${PROJECT_SOURCE_DIR}/src/common/HTMLFormatter.cc
64 ${PROJECT_SOURCE_DIR}/src/common/Formatter.cc
65 ${PROJECT_SOURCE_DIR}/src/common/Graylog.cc
66 ${PROJECT_SOURCE_DIR}/src/common/LogEntry.cc
67 ${PROJECT_SOURCE_DIR}/src/common/Mutex.cc
68 ${PROJECT_SOURCE_DIR}/src/common/SubProcess.cc
69 ${PROJECT_SOURCE_DIR}/src/common/TextTable.cc
70 ${PROJECT_SOURCE_DIR}/src/common/Thread.cc
71 ${PROJECT_SOURCE_DIR}/src/common/HeartbeatMap.cc
72 ${PROJECT_SOURCE_DIR}/src/common/PluginRegistry.cc
73 ${PROJECT_SOURCE_DIR}/src/librbd/Features.cc
74 ${PROJECT_SOURCE_DIR}/src/log/Log.cc
75 ${PROJECT_SOURCE_DIR}/src/mgr/ServiceMap.cc
76 ${PROJECT_SOURCE_DIR}/src/mds/inode_backtrace.cc
77 ${PROJECT_SOURCE_DIR}/src/mds/mdstypes.cc
78 ${PROJECT_SOURCE_DIR}/src/mds/FSMap.cc
79 ${PROJECT_SOURCE_DIR}/src/mds/FSMapUser.cc
80 ${PROJECT_SOURCE_DIR}/src/mds/MDSMap.cc
81 ${PROJECT_SOURCE_DIR}/src/msg/msg_types.cc
82 ${PROJECT_SOURCE_DIR}/src/msg/Message.cc
83 ${PROJECT_SOURCE_DIR}/src/mon/PGMap.cc
84 ${PROJECT_SOURCE_DIR}/src/mon/MonCap.cc
85 ${PROJECT_SOURCE_DIR}/src/mon/MonMap.cc
86 ${PROJECT_SOURCE_DIR}/src/osd/osd_types.cc
87 ${PROJECT_SOURCE_DIR}/src/osd/ECMsgTypes.cc
88 ${PROJECT_SOURCE_DIR}/src/osd/HitSet.cc
89 ${PROJECT_SOURCE_DIR}/src/osd/OSDMap.cc
90 ${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc
91 ${crimson_common_srcs}
92 $<TARGET_OBJECTS:crimson-auth>
93 $<TARGET_OBJECTS:common_buffer_obj>
94 $<TARGET_OBJECTS:common_mountcephfs_objs>
95 $<TARGET_OBJECTS:crimson-crush>
96 $<TARGET_OBJECTS:global_common_objs>)
97
98 target_compile_definitions(crimson-common PRIVATE
99 "CEPH_LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\""
100 "CEPH_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
101 "CEPH_DATADIR=\"${CEPH_INSTALL_DATADIR}\"")
102
103 target_link_libraries(crimson-common
104 PUBLIC
105 json_spirit
106 PRIVATE
107 crc32
108 crimson::cflags
109 Boost::iostreams
110 Boost::random
111 ${NSS_LIBRARIES} ${NSPR_LIBRARIES} OpenSSL::Crypto)
112
113 set(crimson_auth_srcs
114 auth/KeyRing.cc)
115 set(crimson_mon_srcs
116 mon/MonClient.cc
117 ${PROJECT_SOURCE_DIR}/src/mon/MonSub.cc)
118 set(crimson_net_srcs
119 net/Dispatcher.cc
120 net/Errors.cc
121 net/Messenger.cc
122 net/SocketConnection.cc
123 net/SocketMessenger.cc
124 net/Socket.cc)
125 set(crimson_thread_srcs
126 thread/ThreadPool.cc
127 thread/Throttle.cc)
128 add_library(crimson STATIC
129 ${crimson_auth_srcs}
130 ${crimson_mon_srcs}
131 ${crimson_net_srcs}
132 ${crimson_thread_srcs}
133 ${CMAKE_SOURCE_DIR}/src/common/buffer_seastar.cc)
134 target_compile_options(crimson PUBLIC
135 "-ftemplate-backtrace-limit=0")
136 target_link_libraries(crimson
137 PUBLIC
138 crimson-common
139 crimson::cflags)
140 add_subdirectory(os)
141 add_subdirectory(osd)