]> git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/CMakeLists.txt
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / rgw / CMakeLists.txt
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
28 set(rgw_a_srcs
29 rgw_acl.cc
30 rgw_acl_s3.cc
31 rgw_acl_swift.cc
32 rgw_auth.cc
33 rgw_auth_keystone.cc
34 rgw_auth_s3.cc
35 rgw_basic_types.cc
36 rgw_bucket.cc
37 rgw_cache.cc
38 rgw_client_io.cc
39 rgw_common.cc
40 rgw_compression.cc
41 rgw_cors.cc
42 rgw_cors_s3.cc
43 rgw_dencoder.cc
44 rgw_env.cc
45 rgw_formats.cc
46 rgw_frontend.cc
47 rgw_gc.cc
48 rgw_http_client.cc
49 rgw_json_enc.cc
50 rgw_keystone.cc
51 rgw_ldap.cc
52 rgw_loadgen.cc
53 rgw_log.cc
54 rgw_lc.cc
55 rgw_lc_s3.cc
56 rgw_metadata.cc
57 rgw_multi.cc
58 rgw_multi_del.cc
59 rgw_sync.cc
60 rgw_data_sync.cc
61 rgw_sync_module.cc
62 rgw_sync_module_es.cc
63 rgw_sync_module_log.cc
64 rgw_period_history.cc
65 rgw_period_puller.cc
66 rgw_period_pusher.cc
67 rgw_realm_reloader.cc
68 rgw_realm_watcher.cc
69 rgw_coroutine.cc
70 rgw_cr_rados.cc
71 rgw_object_expirer_core.cc
72 rgw_op.cc
73 rgw_os_lib.cc
74 rgw_policy_s3.cc
75 rgw_process.cc
76 rgw_quota.cc
77 rgw_rados.cc
78 rgw_replica_log.cc
79 rgw_request.cc
80 rgw_resolve.cc
81 rgw_rest_bucket.cc
82 rgw_rest.cc
83 rgw_rest_client.cc
84 rgw_rest_config.cc
85 rgw_rest_conn.cc
86 rgw_rest_log.cc
87 rgw_rest_metadata.cc
88 rgw_rest_opstate.cc
89 rgw_rest_realm.cc
90 rgw_rest_replica_log.cc
91 rgw_rest_role.cc
92 rgw_rest_s3.cc
93 rgw_rest_swift.cc
94 rgw_rest_usage.cc
95 rgw_rest_user.cc
96 rgw_role.cc
97 rgw_swift_auth.cc
98 rgw_tools.cc
99 rgw_usage.cc
100 rgw_user.cc
101 rgw_website.cc
102 rgw_xml.cc
103 rgw_xml_enc.cc
104 rgw_torrent.cc
105 rgw_crypt.cc
106 rgw_crypt_sanitize.cc)
107
108 if (WITH_RADOSGW_FCGI_FRONTEND)
109 list(APPEND rgw_a_srcs rgw_fcgi.cc)
110 endif()
111
112 add_library(rgw_a STATIC ${rgw_a_srcs})
113
114 add_dependencies(rgw_a civetweb_h)
115
116 target_include_directories(rgw_a PUBLIC
117 "../Beast/include"
118 ${FCGI_INCLUDE_DIR})
119 target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING)
120
121 target_link_libraries(rgw_a librados cls_lock_client cls_rgw_client cls_refcount_client
122 cls_log_client cls_statelog_client cls_timeindex_client cls_version_client
123 cls_replica_log_client cls_user_client ceph-common common_utf8 global
124 ${CURL_LIBRARIES} ${Boost_LIBRARIES}
125 ${EXPAT_LIBRARIES}
126 ${OPENLDAP_LIBRARIES} ${CRYPTO_LIBS})
127
128 set(radosgw_srcs
129 rgw_loadgen_process.cc
130 rgw_civetweb.cc
131 rgw_civetweb_frontend.cc
132 rgw_civetweb_log.cc)
133
134 if (WITH_RADOSGW_FCGI_FRONTEND)
135 list(APPEND radosgw_srcs rgw_fcgi_process.cc)
136 endif()
137
138 if (WITH_RADOSGW_BEAST_FRONTEND)
139 list(APPEND radosgw_srcs
140 rgw_asio_client.cc
141 rgw_asio_frontend.cc)
142 endif (WITH_RADOSGW_BEAST_FRONTEND)
143
144 add_library(radosgw_a STATIC ${radosgw_srcs}
145 $<TARGET_OBJECTS:civetweb_common_objs>)
146 target_link_libraries(radosgw_a rgw_a ${SSL_LIBRARIES})
147
148 add_executable(radosgw rgw_main.cc)
149 target_link_libraries(radosgw radosgw_a librados
150 cls_rgw_client cls_lock_client cls_refcount_client
151 cls_log_client cls_statelog_client cls_timeindex_client
152 cls_version_client cls_replica_log_client cls_user_client
153 global ${FCGI_LIBRARY} ${LIB_RESOLV}
154 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}
155 ${ALLOC_LIBS})
156 # radosgw depends on cls libraries at runtime, but not as link dependencies
157 add_dependencies(radosgw cls_rgw cls_lock cls_refcount
158 cls_log cls_statelog cls_timeindex
159 cls_version cls_replica_log cls_user)
160 install(TARGETS radosgw DESTINATION bin)
161
162 set(radosgw_admin_srcs
163 rgw_admin.cc
164 rgw_orphan.cc)
165 add_executable(radosgw-admin ${radosgw_admin_srcs})
166 target_link_libraries(radosgw-admin rgw_a librados
167 cls_rgw_client cls_lock_client cls_refcount_client
168 cls_log_client cls_statelog_client cls_timeindex_client
169 cls_version_client cls_replica_log_client cls_user_client
170 global ${FCGI_LIBRARY} ${LIB_RESOLV}
171 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${SSL_LIBRARIES} ${BLKID_LIBRARIES})
172 install(TARGETS radosgw-admin DESTINATION bin)
173
174 set(radosgw_token_srcs
175 rgw_token.cc)
176 add_executable(radosgw-token ${radosgw_token_srcs})
177 target_link_libraries(radosgw-token librados
178 global ${ALLOC_LIBS})
179 install(TARGETS radosgw-token DESTINATION bin)
180
181 set(radosgw_object_expirer_srcs
182 rgw_object_expirer.cc)
183 add_executable(radosgw-object-expirer ${radosgw_object_expirer_srcs})
184 target_link_libraries(radosgw-object-expirer rgw_a librados
185 cls_rgw_client cls_lock_client cls_refcount_client
186 cls_log_client cls_statelog_client cls_timeindex_client
187 cls_version_client cls_replica_log_client cls_user_client
188 global ${FCGI_LIBRARY} ${LIB_RESOLV}
189 ${CURL_LIBRARIES} ${EXPAT_LIBRARIES})
190 install(TARGETS radosgw-object-expirer DESTINATION bin)
191
192 set(librgw_srcs
193 librgw.cc
194 rgw_file.cc)
195 add_library(rgw SHARED ${librgw_srcs})
196 target_link_libraries(rgw LINK_PRIVATE
197 rgw_a
198 librados
199 cls_rgw_client
200 cls_lock_client
201 cls_refcount_client
202 cls_log_client
203 cls_statelog_client
204 cls_timeindex_client
205 cls_version_client
206 cls_replica_log_client
207 cls_user_client
208 global
209 ${LIB_RESOLV}
210 ${CURL_LIBRARIES}
211 ${EXPAT_LIBRARIES})
212 set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0
213 SOVERSION 2)
214 install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
215
216 if(WITH_EMBEDDED)
217 include(MergeStaticLibraries)
218 add_library(cephd_rgw_base STATIC rgw_main.cc ${radosgw_admin_srcs})
219 target_include_directories(cephd_rgw_base PUBLIC ${FCGI_INCLUDE_DIR})
220 set_target_properties(cephd_rgw_base PROPERTIES COMPILE_DEFINITIONS BUILDING_FOR_EMBEDDED)
221 merge_static_libraries(cephd_rgw cephd_rgw_base rgw_a radosgw_a)
222 target_link_libraries(cephd_rgw ${FCGI_LIBRARY})
223 endif()