]> git.proxmox.com Git - ceph.git/blame - ceph/src/common/CMakeLists.txt
import quincy beta 17.1.0
[ceph.git] / ceph / src / common / CMakeLists.txt
CommitLineData
11fdf7f2
TL
1add_library(common_buffer_obj OBJECT
2 buffer.cc)
3
4add_library(common_texttable_obj OBJECT
5 TextTable.cc)
6
eafe8130
TL
7add_library(common_prioritycache_obj OBJECT
8 PriorityCache.cc)
20effc67 9add_dependencies(common_prioritycache_obj legacy-option-headers)
eafe8130 10
f67539c2
TL
11if(WIN32)
12 add_library(dlfcn_win32 STATIC win32/dlfcn.cc win32/errno.cc)
13endif()
14
20effc67
TL
15add_subdirectory(options)
16
11fdf7f2
TL
17set(common_srcs
18 AsyncOpTracker.cc
19 BackTrace.cc
20 ConfUtils.cc
21 Cycles.cc
f67539c2 22 CDC.cc
11fdf7f2 23 DecayCounter.cc
f67539c2 24 FastCDC.cc
11fdf7f2 25 Finisher.cc
f67539c2 26 FixedCDC.cc
11fdf7f2
TL
27 Formatter.cc
28 Graylog.cc
29 HTMLFormatter.cc
30 HeartbeatMap.cc
31 LogClient.cc
32 LogEntry.cc
9f95a23c 33 ostream_temp.cc
11fdf7f2
TL
34 OutputDataSocket.cc
35 PluginRegistry.cc
11fdf7f2 36 Readahead.cc
9f95a23c 37 RefCountedObj.cc
11fdf7f2 38 SloppyCRCMap.cc
11fdf7f2
TL
39 Thread.cc
40 Throttle.cc
41 Timer.cc
42 TracepointProvider.cc
43 TrackedOp.cc
44 WorkQueue.cc
11fdf7f2
TL
45 admin_socket.cc
46 admin_socket_client.cc
47 assert.cc
48 bit_str.cc
11fdf7f2
TL
49 bloom_filter.cc
50 ceph_argparse.cc
51 ceph_context.cc
52 ceph_crypto.cc
11fdf7f2
TL
53 ceph_frag.cc
54 ceph_fs.cc
55 ceph_hash.cc
56 ceph_json.cc
57 ceph_strings.cc
9f95a23c 58 ceph_releases.cc
11fdf7f2
TL
59 ceph_time.cc
60 cmdparse.cc
61 code_environment.cc
62 common_init.cc
63 compat.cc
11fdf7f2
TL
64 config.cc
65 config_values.cc
11fdf7f2
TL
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
11fdf7f2
TL
79 mempool.cc
80 mime.c
11fdf7f2 81 numa.cc
f67539c2 82 openssl_opts_handler.cc
11fdf7f2
TL
83 options.cc
84 page.cc
85 perf_counters.cc
86 perf_counters_collection.cc
87 perf_histogram.cc
88 pick_address.cc
9f95a23c 89 random_string.cc
11fdf7f2
TL
90 reverse.c
91 run_cmd.cc
92 scrub_types.cc
11fdf7f2
TL
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
f67539c2 100 pretty_binary.cc
11fdf7f2
TL
101 utf8.c
102 util.cc
9f95a23c 103 version.cc)
11fdf7f2 104
20effc67
TL
105if(WITH_SYSTEMD)
106 list(APPEND common_srcs
107 Journald.cc)
108endif()
109
110if(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)
116endif()
117
f67539c2
TL
118if(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)
147else()
148 list(APPEND common_srcs
149 blkdev.cc
150 dns_resolve.cc
151 linux_version.c
152 SubProcess.cc)
153endif()
154
11fdf7f2
TL
155set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/version.cc
156 APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)
157
158if(HAS_VTA)
159 set_source_files_properties(
160 config.cc
161 options.cc
162 PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
163endif()
164
165if(FREEBSD)
166 list(APPEND common_srcs freebsd_errno.cc)
167elseif(APPLE)
168 list(APPEND common_srcs darwin_errno.cc)
169elseif(SUN)
170 list(APPEND common_srcs solaris_errno.cc)
171elseif(AIX)
172 list(APPEND common_srcs aix_errno.cc)
f67539c2
TL
173elseif(WIN32)
174 list(APPEND common_srcs win32/errno.cc)
11fdf7f2
TL
175endif()
176
9f95a23c 177if(WITH_EVENTTRACE)
11fdf7f2
TL
178 list(APPEND common_srcs EventTrace.cc)
179endif()
180
181add_library(common-common-objs OBJECT
182 ${common_srcs})
9f95a23c
TL
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).
186target_include_directories(common-common-objs PRIVATE ${OPENSSL_INCLUDE_DIR})
11fdf7f2
TL
187# for options.cc
188target_compile_definitions(common-common-objs PRIVATE
20effc67
TL
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>)
193add_dependencies(common-common-objs legacy-option-headers)
11fdf7f2
TL
194
195set(common_mountcephfs_srcs
196 armor.c
197 safe_io.c
198 module.c
199 addr_parsing.c)
200add_library(common_mountcephfs_objs OBJECT
201 ${common_mountcephfs_srcs})
202
203
204set(crc32_srcs
205 crc32c.cc
206 crc32c_intel_baseline.c
207 sctp_crc32.c)
11fdf7f2
TL
208if(HAVE_INTEL)
209 list(APPEND crc32_srcs
210 crc32c_intel_fast.c)
f67539c2
TL
211 if(HAVE_NASM_X64)
212 set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
11fdf7f2 213 list(APPEND crc32_srcs
f67539c2 214 ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm
11fdf7f2 215 crc32c_intel_fast_zero_asm.s)
f67539c2 216 endif(HAVE_NASM_X64)
11fdf7f2
TL
217elseif(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)
225elseif(HAVE_ARMV8_CRC)
226 list(APPEND crc32_srcs
227 crc32c_aarch64.c)
228endif(HAVE_INTEL)
229
522d829b 230add_library(crc32 STATIC ${crc32_srcs})
11fdf7f2
TL
231if(HAVE_ARMV8_CRC)
232 set_target_properties(crc32 PROPERTIES
233 COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
234endif()
235target_link_libraries(crc32
236 arch)
237
238add_library(common_utf8 STATIC utf8.c)
239
eafe8130 240if(HAVE_KEYUTILS)
11fdf7f2
TL
241 set(parse_secret_srcs
242 secret.c)
243 add_library(parse_secret_objs OBJECT ${parse_secret_srcs})
244endif()