From: Kefu Chai Date: Tue, 4 Jun 2019 12:59:24 +0000 (+0800) Subject: cmake: extract rgw_*_scheduler.cc into rgw_schedulers X-Git-Tag: v15.1.0~2568^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d3e0f3469f0f56d8eaebd7d093fd80dc7c3eef3e;p=ceph.git cmake: extract rgw_*_scheduler.cc into rgw_schedulers i was running into following issue: ../../../lib/libradosgw_a.a(rgw_loadgen_process.cc.o): In function `RGWLoadGenProcess::run()': /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_loadgen_process.cc:102: undefined reference to `signal_shutdown()' collect2: error: ld returned 1 exit status signal_shutdown() is only used by rgw_main.cc to notify the main thread, but we don't need this facility in unit test exercising the schedulers, so, in this change, rgw schedulers are extracted into librgw_schedulers, so this library can be consumed by the unit test. Signed-off-by: Kefu Chai --- diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index dac869f824fb..10aee8d2a050 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -210,14 +210,14 @@ if(WITH_RADOSGW_AMQP_ENDPOINT) list(APPEND rgw_libs RabbitMQ::RabbitMQ) endif() +set(rgw_schedulers_srcs + rgw_dmclock_scheduler_ctx.cc + rgw_dmclock_sync_scheduler.cc) set(radosgw_srcs rgw_loadgen_process.cc rgw_civetweb.cc rgw_civetweb_frontend.cc - rgw_civetweb_log.cc - rgw_dmclock_scheduler_ctx.cc - rgw_dmclock_sync_scheduler.cc) - + rgw_civetweb_log.cc) if (WITH_RADOSGW_FCGI_FRONTEND) list(APPEND radosgw_srcs rgw_fcgi_process.cc) endif() @@ -225,13 +225,19 @@ endif() if(WITH_RADOSGW_BEAST_FRONTEND) list(APPEND radosgw_srcs rgw_asio_client.cc - rgw_asio_frontend.cc + rgw_asio_frontend.cc) + list(APPEND rgw_schedulers_srcs rgw_dmclock_async_scheduler.cc) endif() add_library(radosgw_a STATIC ${radosgw_srcs} $) -target_link_libraries(radosgw_a PRIVATE ${rgw_libs}) +add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs}) +target_link_libraries(rgw_schedulers + PUBLIC dmclock::dmclock) +target_link_libraries(radosgw_a + PRIVATE ${rgw_libs} rgw_schedulers + PUBLIC dmclock::dmclock) if(WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL) # used by rgw_asio_frontend.cc target_link_libraries(radosgw_a PRIVATE OpenSSL::SSL) @@ -242,7 +248,7 @@ target_link_libraries(radosgw radosgw_a librados cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client cls_log_client cls_timeindex_client cls_version_client cls_user_client - global dmclock::dmclock + global ${FCGI_LIBRARY} ${LIB_RESOLV} ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES} ${ALLOC_LIBS}) diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt index 648f14b83651..65cb731f8a4e 100644 --- a/src/test/rgw/CMakeLists.txt +++ b/src/test/rgw/CMakeLists.txt @@ -141,7 +141,7 @@ add_ceph_unittest(unittest_rgw_string) add_executable(unittest_rgw_dmclock_scheduler test_rgw_dmclock_scheduler.cc $) add_ceph_unittest(unittest_rgw_dmclock_scheduler) -target_link_libraries(unittest_rgw_dmclock_scheduler radosgw_a dmclock) +target_link_libraries(unittest_rgw_dmclock_scheduler rgw_schedulers global ${UNITTEST_LIBS}) if(WITH_BOOST_CONTEXT) target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING) target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context)