]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | if(WITH_TESTS) |
2 | add_executable(ceph_rgw_jsonparser | |
3 | rgw_jsonparser.cc) | |
4 | target_link_libraries(ceph_rgw_jsonparser | |
5 | rgw_a | |
6 | global) | |
7 | ||
8 | add_executable(ceph_rgw_multiparser | |
9 | rgw_multiparser.cc) | |
10 | target_link_libraries(ceph_rgw_multiparser | |
11 | rgw_a | |
12 | global) | |
13 | ||
14 | install(TARGETS | |
15 | ceph_rgw_jsonparser | |
16 | ceph_rgw_multiparser | |
17 | DESTINATION bin) | |
18 | endif(WITH_TESTS) | |
19 | ||
20 | add_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 |
28 | find_program(GPERF gperf) |
29 | if(NOT GPERF) | |
30 | message(FATAL_ERROR "Can't find gperf") | |
31 | endif() | |
32 | function(gperf_generate input output) | |
33 | add_custom_command( | |
34 | OUTPUT ${output} | |
35 | COMMAND ${GPERF} ${input} > ${output} | |
36 | DEPENDS ${input} | |
37 | COMMENT "Generate ${output}" | |
38 | ) | |
39 | endfunction() | |
40 | ||
7c673cae FG |
41 | set(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 | ||
128 | gperf_generate(${CMAKE_SOURCE_DIR}/src/rgw/rgw_iam_policy_keywords.gperf | |
129 | rgw_iam_policy_keywords.frag.cc) | |
130 | set_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 | |
135 | if (WITH_RADOSGW_FCGI_FRONTEND) | |
136 | list(APPEND rgw_a_srcs rgw_fcgi.cc) | |
137 | endif() | |
138 | ||
139 | add_library(rgw_a STATIC ${rgw_a_srcs}) | |
140 | ||
141 | add_dependencies(rgw_a civetweb_h) | |
142 | ||
143 | target_include_directories(rgw_a PUBLIC | |
144 | "../Beast/include" | |
31f18b77 FG |
145 | ${FCGI_INCLUDE_DIR} |
146 | "../rapidjson/include" | |
147 | ) | |
7c673cae FG |
148 | target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING) |
149 | ||
150 | target_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 | ||
157 | set(radosgw_srcs | |
158 | rgw_loadgen_process.cc | |
159 | rgw_civetweb.cc | |
160 | rgw_civetweb_frontend.cc | |
161 | rgw_civetweb_log.cc) | |
162 | ||
163 | if (WITH_RADOSGW_FCGI_FRONTEND) | |
164 | list(APPEND radosgw_srcs rgw_fcgi_process.cc) | |
165 | endif() | |
166 | ||
167 | if (WITH_RADOSGW_BEAST_FRONTEND) | |
168 | list(APPEND radosgw_srcs | |
169 | rgw_asio_client.cc | |
170 | rgw_asio_frontend.cc) | |
171 | endif (WITH_RADOSGW_BEAST_FRONTEND) | |
172 | ||
173 | add_library(radosgw_a STATIC ${radosgw_srcs} | |
174 | $<TARGET_OBJECTS:civetweb_common_objs>) | |
175 | target_link_libraries(radosgw_a rgw_a ${SSL_LIBRARIES}) | |
31f18b77 FG |
176 | if(WITH_RADOSGW_BEAST_FRONTEND) |
177 | target_link_libraries(radosgw_a | |
178 | Boost::coroutine | |
179 | Boost::context) | |
180 | endif() | |
7c673cae FG |
181 | |
182 | add_executable(radosgw rgw_main.cc) | |
183 | target_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 | |
191 | add_dependencies(radosgw cls_rgw cls_lock cls_refcount | |
192 | cls_log cls_statelog cls_timeindex | |
193 | cls_version cls_replica_log cls_user) | |
194 | install(TARGETS radosgw DESTINATION bin) | |
195 | ||
196 | set(radosgw_admin_srcs | |
197 | rgw_admin.cc | |
198 | rgw_orphan.cc) | |
199 | add_executable(radosgw-admin ${radosgw_admin_srcs}) | |
200 | target_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}) | |
206 | install(TARGETS radosgw-admin DESTINATION bin) | |
207 | ||
31f18b77 FG |
208 | set(radosgw_es_srcs |
209 | rgw_es_main.cc) | |
210 | add_executable(radosgw-es ${radosgw_es_srcs}) | |
211 | target_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}) | |
217 | install(TARGETS radosgw-es DESTINATION bin) | |
218 | ||
7c673cae FG |
219 | set(radosgw_token_srcs |
220 | rgw_token.cc) | |
221 | add_executable(radosgw-token ${radosgw_token_srcs}) | |
222 | target_link_libraries(radosgw-token librados | |
223 | global ${ALLOC_LIBS}) | |
224 | install(TARGETS radosgw-token DESTINATION bin) | |
225 | ||
226 | set(radosgw_object_expirer_srcs | |
227 | rgw_object_expirer.cc) | |
228 | add_executable(radosgw-object-expirer ${radosgw_object_expirer_srcs}) | |
229 | target_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}) | |
235 | install(TARGETS radosgw-object-expirer DESTINATION bin) | |
236 | ||
237 | set(librgw_srcs | |
238 | librgw.cc | |
239 | rgw_file.cc) | |
240 | add_library(rgw SHARED ${librgw_srcs}) | |
241 | target_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}) | |
257 | set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0 | |
258 | SOVERSION 2) | |
259 | install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
260 | ||
261 | if(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 | 272 | endif() |