]> git.proxmox.com Git - ceph.git/blame - ceph/src/rgw/CMakeLists.txt
update sources to v12.1.3
[ceph.git] / ceph / src / rgw / CMakeLists.txt
CommitLineData
7c673cae
FG
1if(WITH_TESTS)
2add_executable(ceph_rgw_jsonparser
3 rgw_jsonparser.cc)
4target_link_libraries(ceph_rgw_jsonparser
5 rgw_a
6 global)
7
8add_executable(ceph_rgw_multiparser
9 rgw_multiparser.cc)
10target_link_libraries(ceph_rgw_multiparser
11 rgw_a
12 global)
13
14install(TARGETS
15 ceph_rgw_jsonparser
16 ceph_rgw_multiparser
17 DESTINATION bin)
18endif(WITH_TESTS)
19
20add_custom_target(civetweb_h
21 COMMAND ${CMAKE_COMMAND} -E make_directory
22 "${CMAKE_BINARY_DIR}/src/include/civetweb"
23 COMMAND ${CMAKE_COMMAND} -E copy_if_different
24 "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h"
25 "${CMAKE_BINARY_DIR}/src/include/civetweb"
26 COMMENT "keep civetweb.h up-to-date")
27
31f18b77
FG
28find_program(GPERF gperf)
29if(NOT GPERF)
30 message(FATAL_ERROR "Can't find gperf")
31endif()
32function(gperf_generate input output)
33 add_custom_command(
34 OUTPUT ${output}
35 COMMAND ${GPERF} ${input} > ${output}
36 DEPENDS ${input}
37 COMMENT "Generate ${output}"
38 )
39endfunction()
40
7c673cae
FG
41set(rgw_a_srcs
42 rgw_acl.cc
43 rgw_acl_s3.cc
44 rgw_acl_swift.cc
45 rgw_auth.cc
46 rgw_auth_keystone.cc
47 rgw_auth_s3.cc
48 rgw_basic_types.cc
49 rgw_bucket.cc
50 rgw_cache.cc
51 rgw_client_io.cc
52 rgw_common.cc
53 rgw_compression.cc
54 rgw_cors.cc
55 rgw_cors_s3.cc
56 rgw_dencoder.cc
57 rgw_env.cc
31f18b77 58 rgw_es_query.cc
7c673cae
FG
59 rgw_formats.cc
60 rgw_frontend.cc
61 rgw_gc.cc
62 rgw_http_client.cc
63 rgw_json_enc.cc
64 rgw_keystone.cc
65 rgw_ldap.cc
66 rgw_loadgen.cc
67 rgw_log.cc
68 rgw_lc.cc
69 rgw_lc_s3.cc
70 rgw_metadata.cc
71 rgw_multi.cc
72 rgw_multi_del.cc
73 rgw_sync.cc
74 rgw_data_sync.cc
75 rgw_sync_module.cc
76 rgw_sync_module_es.cc
31f18b77 77 rgw_sync_module_es_rest.cc
7c673cae
FG
78 rgw_sync_module_log.cc
79 rgw_period_history.cc
80 rgw_period_puller.cc
81 rgw_period_pusher.cc
82 rgw_realm_reloader.cc
83 rgw_realm_watcher.cc
31f18b77 84 rgw_reshard.cc
7c673cae
FG
85 rgw_coroutine.cc
86 rgw_cr_rados.cc
87 rgw_object_expirer_core.cc
88 rgw_op.cc
89 rgw_os_lib.cc
90 rgw_policy_s3.cc
91 rgw_process.cc
92 rgw_quota.cc
93 rgw_rados.cc
94 rgw_replica_log.cc
95 rgw_request.cc
96 rgw_resolve.cc
97 rgw_rest_bucket.cc
98 rgw_rest.cc
99 rgw_rest_client.cc
100 rgw_rest_config.cc
101 rgw_rest_conn.cc
102 rgw_rest_log.cc
103 rgw_rest_metadata.cc
104 rgw_rest_opstate.cc
105 rgw_rest_realm.cc
106 rgw_rest_replica_log.cc
107 rgw_rest_role.cc
108 rgw_rest_s3.cc
109 rgw_rest_swift.cc
110 rgw_rest_usage.cc
111 rgw_rest_user.cc
112 rgw_role.cc
d2e6a577 113 rgw_string.cc
7c673cae 114 rgw_swift_auth.cc
224ce89b
WB
115 rgw_tag.cc
116 rgw_tag_s3.cc
7c673cae
FG
117 rgw_tools.cc
118 rgw_usage.cc
119 rgw_user.cc
120 rgw_website.cc
121 rgw_xml.cc
122 rgw_xml_enc.cc
123 rgw_torrent.cc
124 rgw_crypt.cc
31f18b77
FG
125 rgw_crypt_sanitize.cc
126 rgw_iam_policy.cc)
127
128gperf_generate(${CMAKE_SOURCE_DIR}/src/rgw/rgw_iam_policy_keywords.gperf
129 rgw_iam_policy_keywords.frag.cc)
130set_source_files_properties(rgw_iam_policy.cc PROPERTIES
131 OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/rgw/rgw_iam_policy_keywords.frag.cc
132 COMPILE_FLAGS -I${CMAKE_BINARY_DIR}/src/rgw)
133
7c673cae
FG
134
135if (WITH_RADOSGW_FCGI_FRONTEND)
136 list(APPEND rgw_a_srcs rgw_fcgi.cc)
137endif()
138
139add_library(rgw_a STATIC ${rgw_a_srcs})
140
141add_dependencies(rgw_a civetweb_h)
142
143target_include_directories(rgw_a PUBLIC
144 "../Beast/include"
31f18b77
FG
145 ${FCGI_INCLUDE_DIR}
146 "../rapidjson/include"
147 )
7c673cae
FG
148target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING)
149
150target_link_libraries(rgw_a librados cls_lock_client cls_rgw_client cls_refcount_client
151 cls_log_client cls_statelog_client cls_timeindex_client cls_version_client
152 cls_replica_log_client cls_user_client ceph-common common_utf8 global
31f18b77 153 ${CURL_LIBRARIES}
7c673cae
FG
154 ${EXPAT_LIBRARIES}
155 ${OPENLDAP_LIBRARIES} ${CRYPTO_LIBS})
156
157set(radosgw_srcs
158 rgw_loadgen_process.cc
159 rgw_civetweb.cc
160 rgw_civetweb_frontend.cc
161 rgw_civetweb_log.cc)
162
163if (WITH_RADOSGW_FCGI_FRONTEND)
164 list(APPEND radosgw_srcs rgw_fcgi_process.cc)
165endif()
166
167if (WITH_RADOSGW_BEAST_FRONTEND)
168 list(APPEND radosgw_srcs
169 rgw_asio_client.cc
170 rgw_asio_frontend.cc)
171endif (WITH_RADOSGW_BEAST_FRONTEND)
172
173add_library(radosgw_a STATIC ${radosgw_srcs}
174 $<TARGET_OBJECTS:civetweb_common_objs>)
175target_link_libraries(radosgw_a rgw_a ${SSL_LIBRARIES})
31f18b77
FG
176if(WITH_RADOSGW_BEAST_FRONTEND)
177 target_link_libraries(radosgw_a
178 Boost::coroutine
179 Boost::context)
180endif()
7c673cae
FG
181
182add_executable(radosgw rgw_main.cc)
183target_link_libraries(radosgw radosgw_a librados
184 cls_rgw_client cls_lock_client cls_refcount_client
185 cls_log_client cls_statelog_client cls_timeindex_client
186 cls_version_client cls_replica_log_client cls_user_client
187 global ${FCGI_LIBRARY} ${LIB_RESOLV}
188 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}
189 ${ALLOC_LIBS})
190# radosgw depends on cls libraries at runtime, but not as link dependencies
191add_dependencies(radosgw cls_rgw cls_lock cls_refcount
192 cls_log cls_statelog cls_timeindex
193 cls_version cls_replica_log cls_user)
194install(TARGETS radosgw DESTINATION bin)
195
196set(radosgw_admin_srcs
197 rgw_admin.cc
198 rgw_orphan.cc)
199add_executable(radosgw-admin ${radosgw_admin_srcs})
200target_link_libraries(radosgw-admin rgw_a librados
201 cls_rgw_client cls_lock_client cls_refcount_client
202 cls_log_client cls_statelog_client cls_timeindex_client
203 cls_version_client cls_replica_log_client cls_user_client
204 global ${FCGI_LIBRARY} ${LIB_RESOLV}
205 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${SSL_LIBRARIES} ${BLKID_LIBRARIES})
206install(TARGETS radosgw-admin DESTINATION bin)
207
31f18b77
FG
208set(radosgw_es_srcs
209 rgw_es_main.cc)
210add_executable(radosgw-es ${radosgw_es_srcs})
211target_link_libraries(radosgw-es rgw_a librados
212 cls_rgw_client cls_lock_client cls_refcount_client
213 cls_log_client cls_statelog_client cls_timeindex_client
214 cls_version_client cls_replica_log_client cls_user_client
215 global ${FCGI_LIBRARY} ${LIB_RESOLV}
216 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${SSL_LIBRARIES} ${BLKID_LIBRARIES})
217install(TARGETS radosgw-es DESTINATION bin)
218
7c673cae
FG
219set(radosgw_token_srcs
220 rgw_token.cc)
221add_executable(radosgw-token ${radosgw_token_srcs})
222target_link_libraries(radosgw-token librados
223 global ${ALLOC_LIBS})
224install(TARGETS radosgw-token DESTINATION bin)
225
226set(radosgw_object_expirer_srcs
227 rgw_object_expirer.cc)
228add_executable(radosgw-object-expirer ${radosgw_object_expirer_srcs})
229target_link_libraries(radosgw-object-expirer rgw_a librados
230 cls_rgw_client cls_lock_client cls_refcount_client
231 cls_log_client cls_statelog_client cls_timeindex_client
232 cls_version_client cls_replica_log_client cls_user_client
233 global ${FCGI_LIBRARY} ${LIB_RESOLV}
234 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES})
235install(TARGETS radosgw-object-expirer DESTINATION bin)
236
237set(librgw_srcs
238 librgw.cc
239 rgw_file.cc)
240add_library(rgw SHARED ${librgw_srcs})
241target_link_libraries(rgw LINK_PRIVATE
242 rgw_a
243 librados
244 cls_rgw_client
245 cls_lock_client
246 cls_refcount_client
247 cls_log_client
248 cls_statelog_client
249 cls_timeindex_client
250 cls_version_client
251 cls_replica_log_client
252 cls_user_client
253 global
254 ${LIB_RESOLV}
255 ${CURL_LIBRARIES}
256 ${EXPAT_LIBRARIES})
257set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0
258 SOVERSION 2)
259install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
260
261if(WITH_EMBEDDED)
262 include(MergeStaticLibraries)
263 add_library(cephd_rgw_base STATIC rgw_main.cc ${radosgw_admin_srcs})
31f18b77
FG
264 if(WITH_RADOSGW_FCGI_FRONTEND)
265 target_include_directories(cephd_rgw_base PUBLIC ${FCGI_INCLUDE_DIR})
266 endif()
7c673cae
FG
267 set_target_properties(cephd_rgw_base PROPERTIES COMPILE_DEFINITIONS BUILDING_FOR_EMBEDDED)
268 merge_static_libraries(cephd_rgw cephd_rgw_base rgw_a radosgw_a)
31f18b77
FG
269 if(WITH_RADOSGW_FCGI_FRONTEND)
270 target_link_libraries(cephd_rgw ${FCGI_LIBRARY})
271 endif()
7c673cae 272endif()