]> git.proxmox.com Git - ceph.git/blob - ceph/src/common/CMakeLists.txt
import quincy beta 17.1.0
[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_histogram.cc
88 pick_address.cc
89 random_string.cc
90 reverse.c
91 run_cmd.cc
92 scrub_types.cc
93 signal.cc
94 snap_types.cc
95 str_list.cc
96 str_map.cc
97 strtol.cc
98 types.cc
99 url_escape.cc
100 pretty_binary.cc
101 utf8.c
102 util.cc
103 version.cc)
104
105 if(WITH_SYSTEMD)
106 list(APPEND common_srcs
107 Journald.cc)
108 endif()
109
110 if(WITH_CEPH_DEBUG_MUTEX)
111 list(APPEND common_srcs
112 lockdep.cc
113 mutex_debug.cc
114 condition_variable_debug.cc
115 shared_mutex_debug.cc)
116 endif()
117
118 if(WIN32)
119 if(MINGW)
120 set(CMAKE_MC_COMPILER x86_64-w64-mingw32-windmc)
121 set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
122 endif()
123
124 add_custom_command(
125 OUTPUT ${CMAKE_BINARY_DIR}/src/common/event_logging.h
126 COMMAND ${CMAKE_MC_COMPILER} -b -e h -h ${CMAKE_BINARY_DIR}/src/common/
127 -r ${CMAKE_BINARY_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc
128 COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_BINARY_DIR}/src/common/event_logging.rc
129 -o ${CMAKE_BINARY_DIR}/src/common/event_logging.o
130 COMMAND ${CMAKE_CXX_COMPILER} -o ${CMAKE_BINARY_DIR}/bin/event_logging.dll -shared
131 ${CMAKE_BINARY_DIR}/src/common/event_logging.o
132 DEPENDS ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc)
133
134 set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/win32/syslog.cc
135 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/common/event_logging.h)
136
137 include_directories(SYSTEM "${CMAKE_BINARY_DIR}/src/common/")
138
139 list(APPEND common_srcs
140 win32/blkdev.cc
141 win32/dns_resolve.cc
142 win32/ifaddrs.cc
143 win32/registry.cc
144 win32/service.cc
145 win32/SubProcess.cc
146 win32/syslog.cc)
147 else()
148 list(APPEND common_srcs
149 blkdev.cc
150 dns_resolve.cc
151 linux_version.c
152 SubProcess.cc)
153 endif()
154
155 set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/version.cc
156 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)
157
158 if(HAS_VTA)
159 set_source_files_properties(
160 config.cc
161 options.cc
162 PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
163 endif()
164
165 if(FREEBSD)
166 list(APPEND common_srcs freebsd_errno.cc)
167 elseif(APPLE)
168 list(APPEND common_srcs darwin_errno.cc)
169 elseif(SUN)
170 list(APPEND common_srcs solaris_errno.cc)
171 elseif(AIX)
172 list(APPEND common_srcs aix_errno.cc)
173 elseif(WIN32)
174 list(APPEND common_srcs win32/errno.cc)
175 endif()
176
177 if(WITH_EVENTTRACE)
178 list(APPEND common_srcs EventTrace.cc)
179 endif()
180
181 add_library(common-common-objs OBJECT
182 ${common_srcs})
183 # Let's not rely on the default system headers and point Cmake to the
184 # retrieved OpenSSL location. This is especially important when cross
185 # compiling (e.g. targeting Windows).
186 target_include_directories(common-common-objs PRIVATE ${OPENSSL_INCLUDE_DIR})
187 # for options.cc
188 target_compile_definitions(common-common-objs PRIVATE
189 "CMAKE_INSTALL_LIBDIR=\"${CMAKE_INSTALL_LIBDIR}\""
190 "CEPH_INSTALL_FULL_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
191 "CEPH_INSTALL_DATADIR=\"${CEPH_INSTALL_DATADIR}\""
192 $<TARGET_PROPERTY:fmt::fmt,INTERFACE_COMPILE_DEFINITIONS>)
193 add_dependencies(common-common-objs legacy-option-headers)
194
195 set(common_mountcephfs_srcs
196 armor.c
197 safe_io.c
198 module.c
199 addr_parsing.c)
200 add_library(common_mountcephfs_objs OBJECT
201 ${common_mountcephfs_srcs})
202
203
204 set(crc32_srcs
205 crc32c.cc
206 crc32c_intel_baseline.c
207 sctp_crc32.c)
208 if(HAVE_INTEL)
209 list(APPEND crc32_srcs
210 crc32c_intel_fast.c)
211 if(HAVE_NASM_X64)
212 set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
213 list(APPEND crc32_srcs
214 ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm
215 crc32c_intel_fast_zero_asm.s)
216 endif(HAVE_NASM_X64)
217 elseif(HAVE_POWER8)
218 list(APPEND crc32_srcs
219 crc32c_ppc.c)
220 if(HAVE_PPC64LE)
221 list(APPEND crc32_srcs
222 crc32c_ppc_asm.S
223 crc32c_ppc_fast_zero_asm.S)
224 endif(HAVE_PPC64LE)
225 elseif(HAVE_ARMV8_CRC)
226 list(APPEND crc32_srcs
227 crc32c_aarch64.c)
228 endif(HAVE_INTEL)
229
230 add_library(crc32 STATIC ${crc32_srcs})
231 if(HAVE_ARMV8_CRC)
232 set_target_properties(crc32 PROPERTIES
233 COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
234 endif()
235 target_link_libraries(crc32
236 arch)
237
238 add_library(common_utf8 STATIC utf8.c)
239
240 if(HAVE_KEYUTILS)
241 set(parse_secret_srcs
242 secret.c)
243 add_library(parse_secret_objs OBJECT ${parse_secret_srcs})
244 endif()