]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | add_custom_target(civetweb_h |
2 | COMMAND ${CMAKE_COMMAND} -E make_directory | |
3 | "${CMAKE_BINARY_DIR}/src/include/civetweb" | |
4 | COMMAND ${CMAKE_COMMAND} -E copy_if_different | |
5 | "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h" | |
6 | "${CMAKE_BINARY_DIR}/src/include/civetweb" | |
7 | COMMENT "keep civetweb.h up-to-date") | |
8 | ||
31f18b77 FG |
9 | find_program(GPERF gperf) |
10 | if(NOT GPERF) | |
11 | message(FATAL_ERROR "Can't find gperf") | |
12 | endif() | |
13 | function(gperf_generate input output) | |
14 | add_custom_command( | |
15 | OUTPUT ${output} | |
11fdf7f2 | 16 | COMMAND ${GPERF} ${input} | sed "s/register //g" > ${output} |
31f18b77 FG |
17 | DEPENDS ${input} |
18 | COMMENT "Generate ${output}" | |
19 | ) | |
20 | endfunction() | |
21 | ||
11fdf7f2 TL |
22 | set(librgw_common_srcs |
23 | services/svc_finisher.cc | |
9f95a23c TL |
24 | services/svc_bi_rados.cc |
25 | services/svc_bilog_rados.cc | |
26 | services/svc_bucket.cc | |
27 | services/svc_bucket_sobj.cc | |
28 | services/svc_bucket_sync_sobj.cc | |
29 | services/svc_cls.cc | |
30 | services/svc_config_key_rados.cc | |
31 | services/svc_datalog_rados.cc | |
32 | services/svc_mdlog.cc | |
33 | services/svc_meta.cc | |
34 | services/svc_meta_be.cc | |
35 | services/svc_meta_be_otp.cc | |
36 | services/svc_meta_be_sobj.cc | |
11fdf7f2 | 37 | services/svc_notify.cc |
9f95a23c | 38 | services/svc_otp.cc |
11fdf7f2 TL |
39 | services/svc_quota.cc |
40 | services/svc_sync_modules.cc | |
41 | services/svc_rados.cc | |
42 | services/svc_sys_obj.cc | |
43 | services/svc_sys_obj_cache.cc | |
44 | services/svc_sys_obj_core.cc | |
9f95a23c TL |
45 | services/svc_tier_rados.cc |
46 | services/svc_user.cc | |
47 | services/svc_user_rados.cc | |
11fdf7f2 TL |
48 | services/svc_zone.cc |
49 | services/svc_zone_utils.cc | |
50 | rgw_service.cc | |
7c673cae FG |
51 | rgw_acl.cc |
52 | rgw_acl_s3.cc | |
53 | rgw_acl_swift.cc | |
9f95a23c | 54 | rgw_aio.cc |
11fdf7f2 | 55 | rgw_aio_throttle.cc |
7c673cae | 56 | rgw_auth.cc |
7c673cae | 57 | rgw_auth_s3.cc |
eafe8130 | 58 | rgw_arn.cc |
7c673cae FG |
59 | rgw_basic_types.cc |
60 | rgw_bucket.cc | |
9f95a23c | 61 | rgw_bucket_sync.cc |
7c673cae | 62 | rgw_cache.cc |
7c673cae FG |
63 | rgw_common.cc |
64 | rgw_compression.cc | |
65 | rgw_cors.cc | |
66 | rgw_cors_s3.cc | |
67 | rgw_dencoder.cc | |
68 | rgw_env.cc | |
31f18b77 | 69 | rgw_es_query.cc |
7c673cae | 70 | rgw_formats.cc |
7c673cae | 71 | rgw_gc.cc |
9f95a23c | 72 | rgw_gc_log.cc |
7c673cae FG |
73 | rgw_http_client.cc |
74 | rgw_json_enc.cc | |
75 | rgw_keystone.cc | |
76 | rgw_ldap.cc | |
7c673cae FG |
77 | rgw_lc.cc |
78 | rgw_lc_s3.cc | |
79 | rgw_metadata.cc | |
80 | rgw_multi.cc | |
81 | rgw_multi_del.cc | |
9f95a23c | 82 | rgw_obj_manifest.cc |
11fdf7f2 | 83 | rgw_pubsub.cc |
7c673cae FG |
84 | rgw_sync.cc |
85 | rgw_data_sync.cc | |
81eedcae | 86 | rgw_sync_counters.cc |
7c673cae | 87 | rgw_sync_module.cc |
11fdf7f2 | 88 | rgw_sync_module_aws.cc |
7c673cae | 89 | rgw_sync_module_es.cc |
31f18b77 | 90 | rgw_sync_module_es_rest.cc |
7c673cae | 91 | rgw_sync_module_log.cc |
11fdf7f2 | 92 | rgw_sync_module_pubsub.cc |
9f95a23c | 93 | rgw_sync_policy.cc |
11fdf7f2 | 94 | rgw_pubsub_push.cc |
eafe8130 TL |
95 | rgw_notify.cc |
96 | rgw_notify_event_type.cc | |
11fdf7f2 | 97 | rgw_sync_module_pubsub_rest.cc |
11fdf7f2 | 98 | rgw_sync_trace.cc |
9f95a23c TL |
99 | rgw_trim_bilog.cc |
100 | rgw_trim_datalog.cc | |
101 | rgw_trim_mdlog.cc | |
7c673cae FG |
102 | rgw_period_history.cc |
103 | rgw_period_puller.cc | |
31f18b77 | 104 | rgw_reshard.cc |
7c673cae FG |
105 | rgw_coroutine.cc |
106 | rgw_cr_rados.cc | |
11fdf7f2 TL |
107 | rgw_cr_rest.cc |
108 | rgw_cr_tools.cc | |
7c673cae FG |
109 | rgw_object_expirer_core.cc |
110 | rgw_op.cc | |
11fdf7f2 | 111 | rgw_otp.cc |
7c673cae | 112 | rgw_policy_s3.cc |
9f95a23c | 113 | rgw_public_access.cc |
11fdf7f2 TL |
114 | rgw_putobj.cc |
115 | rgw_putobj_processor.cc | |
7c673cae FG |
116 | rgw_quota.cc |
117 | rgw_rados.cc | |
7c673cae | 118 | rgw_resolve.cc |
7c673cae FG |
119 | rgw_rest.cc |
120 | rgw_rest_client.cc | |
7c673cae FG |
121 | rgw_rest_conn.cc |
122 | rgw_rest_log.cc | |
123 | rgw_rest_metadata.cc | |
eafe8130 TL |
124 | rgw_rest_pubsub.cc |
125 | rgw_rest_pubsub_common.cc | |
7c673cae | 126 | rgw_rest_realm.cc |
7c673cae FG |
127 | rgw_rest_role.cc |
128 | rgw_rest_s3.cc | |
7c673cae | 129 | rgw_role.cc |
9f95a23c | 130 | rgw_sal.cc |
d2e6a577 | 131 | rgw_string.cc |
224ce89b WB |
132 | rgw_tag.cc |
133 | rgw_tag_s3.cc | |
7c673cae | 134 | rgw_tools.cc |
7c673cae FG |
135 | rgw_user.cc |
136 | rgw_website.cc | |
137 | rgw_xml.cc | |
138 | rgw_xml_enc.cc | |
139 | rgw_torrent.cc | |
140 | rgw_crypt.cc | |
31f18b77 | 141 | rgw_crypt_sanitize.cc |
11fdf7f2 TL |
142 | rgw_iam_policy.cc |
143 | rgw_rest_user_policy.cc | |
144 | rgw_zone.cc | |
145 | rgw_sts.cc | |
146 | rgw_rest_sts.cc | |
eafe8130 | 147 | rgw_perf_counters.cc |
f91f0fd5 | 148 | rgw_rest_oidc_provider.cc |
9f95a23c | 149 | rgw_rest_iam.cc |
92f5a8d4 | 150 | rgw_object_lock.cc |
9f95a23c | 151 | rgw_kms.cc |
f91f0fd5 TL |
152 | rgw_url.cc |
153 | rgw_oidc_provider) | |
11fdf7f2 TL |
154 | |
155 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
156 | list(APPEND librgw_common_srcs rgw_amqp.cc) | |
157 | endif() | |
9f95a23c TL |
158 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
159 | list(APPEND librgw_common_srcs rgw_kafka.cc) | |
160 | endif() | |
11fdf7f2 TL |
161 | |
162 | add_library(rgw_common OBJECT ${librgw_common_srcs}) | |
163 | ||
164 | target_include_directories(rgw_common SYSTEM PUBLIC "services") | |
165 | target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src") | |
9f95a23c | 166 | target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/fmt/include") |
f91f0fd5 | 167 | target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw") |
9f95a23c TL |
168 | |
169 | if(WITH_BOOST_CONTEXT) | |
170 | target_include_directories(rgw_common PRIVATE | |
171 | $<TARGET_PROPERTY:spawn,INTERFACE_INCLUDE_DIRECTORIES>) | |
172 | endif() | |
11fdf7f2 TL |
173 | |
174 | if(WITH_LTTNG) | |
175 | # rgw/rgw_op.cc includes "tracing/rgw_op.h" | |
176 | # rgw/rgw_rados.cc includes "tracing/rgw_rados.h" | |
177 | add_dependencies(rgw_common rgw_op-tp rgw_rados-tp) | |
178 | endif() | |
179 | ||
180 | set(rgw_a_srcs | |
181 | rgw_auth_keystone.cc | |
182 | rgw_client_io.cc | |
183 | rgw_frontend.cc | |
184 | rgw_http_client_curl.cc | |
185 | rgw_loadgen.cc | |
186 | rgw_log.cc | |
187 | rgw_period_pusher.cc | |
188 | rgw_realm_reloader.cc | |
189 | rgw_realm_watcher.cc | |
190 | rgw_os_lib.cc | |
191 | rgw_process.cc | |
192 | rgw_rest_bucket.cc | |
193 | rgw_rest_config.cc | |
194 | rgw_rest_log.cc | |
195 | rgw_rest_metadata.cc | |
196 | rgw_rest_realm.cc | |
197 | rgw_rest_swift.cc | |
198 | rgw_rest_usage.cc | |
199 | rgw_rest_user.cc | |
200 | rgw_swift_auth.cc | |
201 | rgw_usage.cc | |
202 | rgw_opa.cc | |
203 | rgw_sts.cc | |
204 | rgw_rest_sts.cc) | |
31f18b77 FG |
205 | |
206 | gperf_generate(${CMAKE_SOURCE_DIR}/src/rgw/rgw_iam_policy_keywords.gperf | |
207 | rgw_iam_policy_keywords.frag.cc) | |
208 | set_source_files_properties(rgw_iam_policy.cc PROPERTIES | |
209 | OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/rgw/rgw_iam_policy_keywords.frag.cc | |
210 | COMPILE_FLAGS -I${CMAKE_BINARY_DIR}/src/rgw) | |
211 | ||
7c673cae FG |
212 | |
213 | if (WITH_RADOSGW_FCGI_FRONTEND) | |
214 | list(APPEND rgw_a_srcs rgw_fcgi.cc) | |
215 | endif() | |
216 | ||
11fdf7f2 TL |
217 | add_library(rgw_a STATIC |
218 | ${rgw_a_srcs} | |
219 | $<TARGET_OBJECTS:rgw_common>) | |
7c673cae FG |
220 | |
221 | add_dependencies(rgw_a civetweb_h) | |
222 | ||
9f95a23c | 223 | target_compile_definitions(rgw_a PUBLIC "-DCLS_CLIENT_HIDE_IOCTX") |
11fdf7f2 | 224 | target_include_directories(rgw_a PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src") |
f64942e4 | 225 | target_include_directories(rgw_a SYSTEM PUBLIC "../rapidjson/include") |
f91f0fd5 | 226 | target_include_directories(rgw_a SYSTEM PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw") |
7c673cae | 227 | |
11fdf7f2 TL |
228 | if(WITH_RADOSGW_AMQP_ENDPOINT) |
229 | find_package(RabbitMQ REQUIRED) | |
230 | endif() | |
9f95a23c TL |
231 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
232 | find_package(RDKafka 0.9.2 REQUIRED) | |
233 | endif() | |
11fdf7f2 TL |
234 | |
235 | target_link_libraries(rgw_a | |
236 | PRIVATE | |
237 | librados cls_otp_client cls_lock_client cls_rgw_client cls_refcount_client | |
238 | cls_log_client cls_timeindex_client cls_version_client | |
9f95a23c | 239 | cls_user_client cls_rgw_gc_client ceph-common common_utf8 global |
31f18b77 | 240 | ${CURL_LIBRARIES} |
7c673cae | 241 | ${EXPAT_LIBRARIES} |
11fdf7f2 TL |
242 | ${OPENLDAP_LIBRARIES} ${CRYPTO_LIBS} |
243 | OATH::OATH) | |
7c673cae | 244 | |
11fdf7f2 TL |
245 | if(WITH_CURL_OPENSSL) |
246 | # used by rgw_http_client_curl.cc | |
247 | target_link_libraries(rgw_a PRIVATE OpenSSL::Crypto) | |
f64942e4 | 248 | endif() |
11fdf7f2 TL |
249 | |
250 | if(WITH_BOOST_CONTEXT) | |
9f95a23c | 251 | target_link_libraries(rgw_a PUBLIC spawn) |
11fdf7f2 TL |
252 | endif() |
253 | ||
254 | set(rgw_libs rgw_a) | |
255 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
256 | # used by rgw_amqp.cc | |
257 | list(APPEND rgw_libs RabbitMQ::RabbitMQ) | |
f64942e4 | 258 | endif() |
9f95a23c TL |
259 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
260 | # used by rgw_kafka.cc | |
261 | list(APPEND rgw_libs RDKafka::RDKafka) | |
262 | endif() | |
94b18763 | 263 | |
9f95a23c TL |
264 | set(rgw_schedulers_srcs |
265 | rgw_dmclock_scheduler_ctx.cc | |
266 | rgw_dmclock_sync_scheduler.cc) | |
7c673cae FG |
267 | set(radosgw_srcs |
268 | rgw_loadgen_process.cc | |
269 | rgw_civetweb.cc | |
270 | rgw_civetweb_frontend.cc | |
9f95a23c | 271 | rgw_civetweb_log.cc) |
7c673cae FG |
272 | if (WITH_RADOSGW_FCGI_FRONTEND) |
273 | list(APPEND radosgw_srcs rgw_fcgi_process.cc) | |
274 | endif() | |
275 | ||
11fdf7f2 | 276 | if(WITH_RADOSGW_BEAST_FRONTEND) |
7c673cae FG |
277 | list(APPEND radosgw_srcs |
278 | rgw_asio_client.cc | |
9f95a23c TL |
279 | rgw_asio_frontend.cc) |
280 | list(APPEND rgw_schedulers_srcs | |
11fdf7f2 TL |
281 | rgw_dmclock_async_scheduler.cc) |
282 | endif() | |
7c673cae | 283 | |
9f95a23c TL |
284 | add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs}) |
285 | target_link_libraries(rgw_schedulers | |
286 | PUBLIC dmclock::dmclock) | |
287 | ||
288 | add_library(radosgw SHARED ${radosgw_srcs} ${rgw_a_srcs} rgw_main.cc | |
7c673cae | 289 | $<TARGET_OBJECTS:civetweb_common_objs>) |
9f95a23c TL |
290 | |
291 | add_dependencies(radosgw civetweb_h) | |
292 | ||
293 | target_compile_definitions(radosgw PUBLIC "-DCLS_CLIENT_HIDE_IOCTX") | |
294 | target_include_directories(radosgw PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src") | |
295 | target_include_directories(radosgw SYSTEM PUBLIC "../rapidjson/include") | |
296 | ||
297 | target_link_libraries(radosgw | |
298 | PRIVATE ${rgw_libs} rgw_schedulers | |
299 | PUBLIC dmclock::dmclock | |
300 | ) | |
301 | if(WITH_RADOSGW_BEAST_FRONTEND) | |
302 | target_link_libraries(rgw_schedulers PUBLIC spawn) | |
303 | if(WITH_RADOSGW_BEAST_OPENSSL) | |
304 | # used by rgw_asio_frontend.cc | |
305 | target_link_libraries(radosgw PRIVATE OpenSSL::SSL) | |
306 | endif() | |
11fdf7f2 | 307 | endif() |
9f95a23c TL |
308 | set_target_properties(radosgw PROPERTIES OUTPUT_NAME radosgw VERSION 2.0.0 |
309 | SOVERSION 2) | |
310 | install(TARGETS radosgw DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
7c673cae | 311 | |
9f95a23c TL |
312 | add_executable(radosgwd radosgw.cc) |
313 | target_link_libraries(radosgwd radosgw librados | |
11fdf7f2 TL |
314 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client |
315 | cls_log_client cls_timeindex_client | |
316 | cls_version_client cls_user_client | |
9f95a23c | 317 | global |
11fdf7f2 | 318 | ${FCGI_LIBRARY} ${LIB_RESOLV} |
7c673cae FG |
319 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES} |
320 | ${ALLOC_LIBS}) | |
9f95a23c TL |
321 | set_target_properties(radosgwd PROPERTIES OUTPUT_NAME radosgw) |
322 | install(TARGETS radosgwd DESTINATION bin) | |
7c673cae FG |
323 | |
324 | set(radosgw_admin_srcs | |
325 | rgw_admin.cc | |
326 | rgw_orphan.cc) | |
327 | add_executable(radosgw-admin ${radosgw_admin_srcs}) | |
11fdf7f2 TL |
328 | target_link_libraries(radosgw-admin ${rgw_libs} librados |
329 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
330 | cls_log_client cls_timeindex_client | |
331 | cls_version_client cls_user_client | |
7c673cae | 332 | global ${FCGI_LIBRARY} ${LIB_RESOLV} |
11fdf7f2 | 333 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}) |
7c673cae FG |
334 | install(TARGETS radosgw-admin DESTINATION bin) |
335 | ||
31f18b77 FG |
336 | set(radosgw_es_srcs |
337 | rgw_es_main.cc) | |
338 | add_executable(radosgw-es ${radosgw_es_srcs}) | |
11fdf7f2 TL |
339 | target_link_libraries(radosgw-es ${rgw_libs} librados |
340 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
341 | cls_log_client cls_timeindex_client | |
342 | cls_version_client cls_user_client | |
31f18b77 | 343 | global ${FCGI_LIBRARY} ${LIB_RESOLV} |
11fdf7f2 | 344 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}) |
31f18b77 FG |
345 | install(TARGETS radosgw-es DESTINATION bin) |
346 | ||
7c673cae FG |
347 | set(radosgw_token_srcs |
348 | rgw_token.cc) | |
349 | add_executable(radosgw-token ${radosgw_token_srcs}) | |
350 | target_link_libraries(radosgw-token librados | |
351 | global ${ALLOC_LIBS}) | |
352 | install(TARGETS radosgw-token DESTINATION bin) | |
353 | ||
354 | set(radosgw_object_expirer_srcs | |
355 | rgw_object_expirer.cc) | |
356 | add_executable(radosgw-object-expirer ${radosgw_object_expirer_srcs}) | |
11fdf7f2 TL |
357 | target_link_libraries(radosgw-object-expirer ${rgw_libs} librados |
358 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
359 | cls_log_client cls_timeindex_client | |
360 | cls_version_client cls_user_client | |
7c673cae FG |
361 | global ${FCGI_LIBRARY} ${LIB_RESOLV} |
362 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES}) | |
363 | install(TARGETS radosgw-object-expirer DESTINATION bin) | |
364 | ||
365 | set(librgw_srcs | |
366 | librgw.cc | |
367 | rgw_file.cc) | |
368 | add_library(rgw SHARED ${librgw_srcs}) | |
11fdf7f2 TL |
369 | target_link_libraries(rgw |
370 | PRIVATE | |
371 | ${rgw_libs} | |
7c673cae FG |
372 | librados |
373 | cls_rgw_client | |
11fdf7f2 | 374 | cls_otp_client |
7c673cae FG |
375 | cls_lock_client |
376 | cls_refcount_client | |
377 | cls_log_client | |
7c673cae FG |
378 | cls_timeindex_client |
379 | cls_version_client | |
7c673cae FG |
380 | cls_user_client |
381 | global | |
382 | ${LIB_RESOLV} | |
383 | ${CURL_LIBRARIES} | |
11fdf7f2 TL |
384 | ${EXPAT_LIBRARIES} |
385 | PUBLIC | |
386 | dmclock::dmclock) | |
387 | ||
388 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
389 | target_link_libraries(rgw PRIVATE RabbitMQ::RabbitMQ) | |
390 | endif() | |
391 | ||
9f95a23c TL |
392 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
393 | target_link_libraries(rgw PRIVATE RDKafka::RDKafka) | |
394 | endif() | |
395 | ||
7c673cae FG |
396 | set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0 |
397 | SOVERSION 2) | |
398 | install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
11fdf7f2 | 399 | |
11fdf7f2 TL |
400 | if(WITH_TESTS) |
401 | add_executable(ceph_rgw_jsonparser | |
402 | rgw_jsonparser.cc) | |
403 | target_link_libraries(ceph_rgw_jsonparser | |
404 | ${rgw_libs} | |
405 | global) | |
406 | ||
407 | add_executable(ceph_rgw_multiparser | |
408 | rgw_multiparser.cc) | |
409 | target_link_libraries(ceph_rgw_multiparser | |
410 | ${rgw_libs} | |
411 | global) | |
412 | ||
413 | install(TARGETS | |
414 | ceph_rgw_jsonparser | |
415 | ceph_rgw_multiparser | |
416 | DESTINATION bin) | |
417 | endif(WITH_TESTS) | |
e306af50 TL |
418 | |
419 | install(PROGRAMS rgw-orphan-list | |
420 | DESTINATION bin) |