]> git.proxmox.com Git - ceph.git/blob - ceph/src/common/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / common / CMakeLists.txt
1 add_library(common_buffer_obj OBJECT
2 buffer.cc)
3
4 add_library(common_texttable_obj OBJECT
5 TextTable.cc)
6
7 add_library(common_prioritycache_obj OBJECT
8 PriorityCache.cc)
9 add_dependencies(common_prioritycache_obj legacy-option-headers)
10
11 if(WIN32)
12 add_library(dlfcn_win32 STATIC win32/dlfcn.cc win32/errno.cc)
13 endif()
14
15 add_subdirectory(options)
16
17 set(common_srcs
18 AsyncOpTracker.cc
19 BackTrace.cc
20 ConfUtils.cc
21 Cycles.cc
22 CDC.cc
23 DecayCounter.cc
24 FastCDC.cc
25 Finisher.cc
26 FixedCDC.cc
27 Formatter.cc
28 Graylog.cc
29 HTMLFormatter.cc
30 HeartbeatMap.cc
31 LogClient.cc
32 LogEntry.cc
33 ostream_temp.cc
34 OutputDataSocket.cc
35 PluginRegistry.cc
36 Readahead.cc
37 RefCountedObj.cc
38 SloppyCRCMap.cc
39 Thread.cc
40 Throttle.cc
41 Timer.cc
42 TracepointProvider.cc
43 TrackedOp.cc
44 WorkQueue.cc
45 admin_socket.cc
46 admin_socket_client.cc
47 assert.cc
48 bit_str.cc
49 bloom_filter.cc
50 ceph_argparse.cc
51 ceph_context.cc
52 ceph_crypto.cc
53 ceph_frag.cc
54 ceph_fs.cc
55 ceph_hash.cc
56 ceph_json.cc
57 ceph_strings.cc
58 ceph_releases.cc
59 ceph_time.cc
60 cmdparse.cc
61 code_environment.cc
62 common_init.cc
63 compat.cc
64 config.cc
65 config_values.cc
66 dout.cc
67 entity_name.cc
68 environment.cc
69 errno.cc
70 escape.cc
71 fd.cc
72 fs_types.cc
73 hex.cc
74 histogram.cc
75 hobject.cc
76 hostname.cc
77 ipaddr.cc
78 iso_8601.cc
79 mempool.cc
80 mime.c
81 numa.cc
82 openssl_opts_handler.cc
83 options.cc
84 page.cc
85 perf_counters.cc
86 perf_counters_collection.cc
87 perf_counters_key.cc
88 perf_histogram.cc
89 pick_address.cc
90 random_string.cc
91 reverse.c
92 run_cmd.cc
93 scrub_types.cc
94 signal.cc
95 snap_types.cc
96 str_list.cc
97 str_map.cc
98 strtol.cc
99 types.cc
100 url_escape.cc
101 pretty_binary.cc
102 utf8.c
103 util.cc
104 version.cc)
105
106 if(WITH_SYSTEMD)
107 list(APPEND common_srcs
108 Journald.cc)
109 endif()
110
111 if(WITH_CEPH_DEBUG_MUTEX)
112 list(APPEND common_srcs
113 lockdep.cc
114 mutex_debug.cc
115 condition_variable_debug.cc
116 shared_mutex_debug.cc)
117 endif()
118
119 if(WIN32)
120 if(MINGW)
121 set(CMAKE_MC_COMPILER x86_64-w64-mingw32-windmc)
122 set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
123 endif()
124
125 add_custom_command(
126 OUTPUT ${CMAKE_BINARY_DIR}/src/common/event_logging.h
127 COMMAND ${CMAKE_MC_COMPILER} -b -e h -h ${CMAKE_BINARY_DIR}/src/common/
128 -r ${CMAKE_BINARY_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc
129 COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_BINARY_DIR}/src/common/event_logging.rc
130 -o ${CMAKE_BINARY_DIR}/src/common/event_logging.o
131 COMMAND ${CMAKE_CXX_COMPILER} -o ${CMAKE_BINARY_DIR}/bin/event_logging.dll -shared
132 ${CMAKE_BINARY_DIR}/src/common/event_logging.o
133 DEPENDS ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc)
134
135 set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/win32/syslog.cc
136 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/common/event_logging.h)
137
138 include_directories(SYSTEM "${CMAKE_BINARY_DIR}/src/common/")
139
140 list(APPEND common_srcs
141 win32/blkdev.cc
142 win32/dns_resolve.cc
143 win32/ifaddrs.cc
144 win32/registry.cc
145 win32/service.cc
146 win32/SubProcess.cc
147 win32/syslog.cc)
148 else()
149 list(APPEND common_srcs
150 blkdev.cc
151 dns_resolve.cc
152 linux_version.c
153 SubProcess.cc)
154 endif()
155
156 set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/version.cc
157 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)
158
159 if(HAS_VTA)
160 set_source_files_properties(
161 config.cc
162 options.cc
163 PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
164 endif()
165
166 if(FREEBSD)
167 list(APPEND common_srcs freebsd_errno.cc)
168 elseif(APPLE)
169 list(APPEND common_srcs darwin_errno.cc)
170 elseif(SUN)
171 list(APPEND common_srcs solaris_errno.cc)
172 elseif(AIX)
173 list(APPEND common_srcs aix_errno.cc)
174 elseif(WIN32)
175 list(APPEND common_srcs win32/errno.cc)
176 list(APPEND common_srcs win32/wstring.cc)
177 endif()
178
179 if(WITH_EVENTTRACE)
180 list(APPEND common_srcs EventTrace.cc)
181 endif()
182
183 add_library(common-common-objs OBJECT
184 ${common_srcs})
185 # Let's not rely on the default system headers and point Cmake to the
186 # retrieved OpenSSL location. This is especially important when cross
187 # compiling (e.g. targeting Windows).
188 target_include_directories(common-common-objs PRIVATE ${OPENSSL_INCLUDE_DIR})
189 # for options.cc
190 target_compile_definitions(common-common-objs PRIVATE
191 "CMAKE_INSTALL_LIBDIR=\"${CMAKE_INSTALL_LIBDIR}\""
192 "CEPH_INSTALL_FULL_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
193 "CEPH_INSTALL_DATADIR=\"${CEPH_INSTALL_DATADIR}\""
194 $<TARGET_PROPERTY:fmt::fmt,INTERFACE_COMPILE_DEFINITIONS>)
195 add_dependencies(common-common-objs legacy-option-headers)
196
197 set(common_mountcephfs_srcs
198 armor.c
199 safe_io.c
200 module.c
201 addr_parsing.c)
202 add_library(common_mountcephfs_objs OBJECT
203 ${common_mountcephfs_srcs})
204
205
206 set(crc32_srcs
207 crc32c.cc
208 crc32c_intel_baseline.c
209 sctp_crc32.c)
210 if(HAVE_INTEL)
211 list(APPEND crc32_srcs
212 crc32c_intel_fast.c)
213 if(HAVE_NASM_X64)
214 set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
215 list(APPEND crc32_srcs
216 ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm
217 crc32c_intel_fast_zero_asm.s)
218 endif(HAVE_NASM_X64)
219 elseif(HAVE_POWER8)
220 list(APPEND crc32_srcs
221 crc32c_ppc.c)
222 if(HAVE_PPC64LE)
223 list(APPEND crc32_srcs
224 crc32c_ppc_asm.S
225 crc32c_ppc_fast_zero_asm.S)
226 endif(HAVE_PPC64LE)
227 elseif(HAVE_ARMV8_CRC)
228 list(APPEND crc32_srcs
229 crc32c_aarch64.c)
230 endif(HAVE_INTEL)
231
232 add_library(crc32 STATIC ${crc32_srcs})
233 if(HAVE_ARMV8_CRC)
234 set_target_properties(crc32 PROPERTIES
235 COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
236 endif()
237 target_link_libraries(crc32
238 arch)
239
240 add_library(common_utf8 STATIC utf8.c)
241
242 if(HAVE_KEYUTILS)
243 set(parse_secret_srcs
244 secret.c)
245 add_library(parse_secret_objs OBJECT ${parse_secret_srcs})
246 endif()