From: Kefu Chai Date: Thu, 26 May 2016 10:59:35 +0000 (+0800) Subject: cmake: s/ENABLE_SHARED/BUILD_SHARED_LIBS/ X-Git-Tag: v11.0.0~390^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1dbfb264ff1cf32807d5a91e75114fa25d553162;p=ceph.git cmake: s/ENABLE_SHARED/BUILD_SHARED_LIBS/ * BUILD_SHARED_LIB is a cmake variable respected by add_library(). so we can simply expose it as an option instead of reinventing our own. * and mark internal libraries as STATIC explicitly * and add keyutil to librbd as secret.cc is using it. and secret.cc is linked into librbd. Signed-off-by: Kefu Chai --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 9552e05fc926..167f7ff51aa7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,12 +150,7 @@ CHECK_CXX_SOURCE_COMPILES(" set(CEPH_MAN_DIR "share/man" CACHE STRING "Install location for man pages (relative to prefix).") -option(ENABLE_SHARED "build shared libraries" ON) -if(${ENABLE_SHARED}) - set(CEPH_SHARED SHARED) -else(${ENABLE_SHARED}) - set(CEPH_SHARED STATIC) -endif(${ENABLE_SHARED}) +option(BUILD_SHARED_LIBS "Build shared libraries" ON) find_package(execinfo) @@ -352,11 +347,11 @@ option(PG_DEBUG_REFS "PG Ref debugging is enabled" OFF) add_definitions(-D__linux__) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) set(Boost_USE_STATIC_LIBS OFF) -else(${ENABLE_SHARED}) +else(BUILD_SHARED_LIBS) set(Boost_USE_STATIC_LIBS ON) -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) set(Boost_USE_MULTITHREADED ON) find_package(Boost COMPONENTS thread system regex random program_options date_time iostreams REQUIRED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eda29f7771c6..71f2e2fbb05a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -451,10 +451,10 @@ else() perfglue/disabled_stubs.cc) endif(${HAVE_GPERFTOOLS}) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) list(APPEND libcommon_files $) -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) add_library(common STATIC ${libcommon_files} $ @@ -498,10 +498,10 @@ target_link_libraries(global common ${CMAKE_THREAD_LIBS_INIT} ${CRYPTO_LIBS} if(${WITH_LTTNG}) target_link_libraries(global lttng-ust dl) endif(${WITH_LTTNG}) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) set_target_properties(global PROPERTIES OUTPUT_NAME ceph-global VERSION "1.0.0" SOVERSION "1") -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) # rados object classes add_subdirectory(cls) @@ -523,7 +523,7 @@ set(librados_srcs librados/snap_set_diff.cc librados/RadosXattrIter.cc ) -add_library(librados ${CEPH_SHARED} ${librados_srcs} +add_library(librados ${librados_srcs} $ $) add_dependencies(librados osdc) @@ -533,10 +533,10 @@ endif() # LINK_PRIVATE instead of PRIVATE is used to backward compatibility with cmake 2.8.11 target_link_libraries(librados LINK_PRIVATE osdc osd os global common cls_lock_client ${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS}) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) set_target_properties(librados PROPERTIES OUTPUT_NAME rados VERSION 2.0.0 SOVERSION 2) -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) add_library(librados_api STATIC common/buffer.cc librados/librados.cc) @@ -1077,19 +1077,19 @@ if(WITH_LIBCEPHFS) client/MetaSession.cc client/Trace.cc client/posix_acl.cc) - add_library(client ${libclient_srcs}) + add_library(client STATIC ${libclient_srcs}) target_link_libraries(client osdc mds) set(libcephfs_srcs libcephfs.cc) - add_library(cephfs ${CEPH_SHARED} ${libcephfs_srcs} + add_library(cephfs ${libcephfs_srcs} $ $) target_link_libraries(cephfs LINK_PRIVATE client osdc osd os global common cls_lock_client ${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS}) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) set_target_properties(cephfs PROPERTIES OUTPUT_NAME cephfs VERSION 1.0.0 SOVERSION 1) -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) install(TARGETS cephfs DESTINATION lib) install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/include/cephfs" @@ -1134,7 +1134,7 @@ set(journal_srcs journal/ObjectPlayer.cc journal/ObjectRecorder.cc journal/Utils.cc) -add_library(journal ${journal_srcs}) +add_library(journal STATIC ${journal_srcs}) add_library(krbd_objs OBJECT krbd.cc) @@ -1177,7 +1177,7 @@ if(${WITH_RBD}) add_executable(rbd-fuse rbd_fuse/rbd-fuse.cc) target_link_libraries(rbd-fuse - librbd ${FUSE_LIBRARIES}) + librbd librados ${FUSE_LIBRARIES}) install(TARGETS rbd-fuse DESTINATION bin) endif() diff --git a/src/cls/CMakeLists.txt b/src/cls/CMakeLists.txt index 37cfbca1b7cb..078c444a79af 100644 --- a/src/cls/CMakeLists.txt +++ b/src/cls/CMakeLists.txt @@ -11,7 +11,7 @@ if (WITH_RBD) set_target_properties(cls_rbd PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_rbd DESTINATION lib/rados-classes) - add_library(cls_rbd_client rbd/cls_rbd_client.cc rbd/cls_rbd_types.cc) + add_library(cls_rbd_client STATIC rbd/cls_rbd_client.cc rbd/cls_rbd_types.cc) endif (WITH_RBD) # cls_lock @@ -19,7 +19,7 @@ add_library(cls_lock SHARED lock/cls_lock.cc) set_target_properties(cls_lock PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_lock DESTINATION lib/rados-classes) -add_library(cls_lock_client +add_library(cls_lock_client STATIC lock/cls_lock_client.cc lock/cls_lock_types.cc lock/cls_lock_ops.cc) @@ -33,7 +33,7 @@ target_link_libraries(cls_refcount json_spirit) set_target_properties(cls_refcount PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_refcount DESTINATION lib/rados-classes) -add_library(cls_refcount_client +add_library(cls_refcount_client STATIC refcount/cls_refcount_client.cc refcount/cls_refcount_ops.cc) @@ -42,7 +42,7 @@ add_library(cls_version SHARED version/cls_version.cc) set_target_properties(cls_version PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_version DESTINATION lib/rados-classes) -add_library(cls_version_client +add_library(cls_version_client STATIC version/cls_version_client.cc version/cls_version_types.cc) @@ -51,28 +51,28 @@ add_library(cls_log SHARED log/cls_log.cc) set_target_properties(cls_log PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_log DESTINATION lib/rados-classes) -add_library(cls_log_client log/cls_log_client.cc) +add_library(cls_log_client STATIC log/cls_log_client.cc) # cls_statelog add_library(cls_statelog SHARED statelog/cls_statelog.cc) set_target_properties(cls_statelog PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_statelog DESTINATION lib/rados-classes) -add_library(cls_statelog_client statelog/cls_statelog_client.cc) +add_library(cls_statelog_client STATIC statelog/cls_statelog_client.cc) # cls_timeindex add_library(cls_timeindex SHARED timeindex/cls_timeindex.cc) set_target_properties(cls_timeindex PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_timeindex DESTINATION lib/rados-classes) -add_library(cls_timeindex_client timeindex/cls_timeindex_client.cc) +add_library(cls_timeindex_client STATIC timeindex/cls_timeindex_client.cc) # cls_replica_log add_library(cls_replica_log SHARED replica_log/cls_replica_log.cc) set_target_properties(cls_replica_log PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_replica_log DESTINATION lib/rados-classes) -add_library(cls_replica_log_client +add_library(cls_replica_log_client STATIC replica_log/cls_replica_log_types.cc replica_log/cls_replica_log_ops.cc replica_log/cls_replica_log_client.cc) @@ -82,7 +82,7 @@ add_library(cls_user SHARED user/cls_user.cc) set_target_properties(cls_user PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_user DESTINATION lib/rados-classes) -add_library(cls_user_client +add_library(cls_user_client STATIC user/cls_user_client.cc user/cls_user_types.cc user/cls_user_ops.cc) @@ -94,7 +94,7 @@ add_library(cls_journal SHARED set_target_properties(cls_journal PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_journal DESTINATION lib/rados-classes) -add_library(cls_journal_client +add_library(cls_journal_client STATIC journal/cls_journal_client.cc journal/cls_journal_types.cc) @@ -109,7 +109,7 @@ if (WITH_RADOSGW) set_target_properties(cls_rgw PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_rgw DESTINATION lib/rados-classes) - add_library(cls_rgw_client + add_library(cls_rgw_client STATIC rgw/cls_rgw_client.cc rgw/cls_rgw_types.cc rgw/cls_rgw_ops.cc) @@ -122,7 +122,7 @@ if (WITH_CEPHFS) set_target_properties(cls_cephfs PROPERTIES VERSION "1.0.0" SOVERSION "1") install(TARGETS cls_cephfs DESTINATION lib/rados-classes) - add_library(cls_cephfs_client + add_library(cls_cephfs_client STATIC cephfs/cls_cephfs_client.cc) endif (WITH_CEPHFS) diff --git a/src/erasure-code/CMakeLists.txt b/src/erasure-code/CMakeLists.txt index 0255876ebdad..d25465dc6fa3 100644 --- a/src/erasure-code/CMakeLists.txt +++ b/src/erasure-code/CMakeLists.txt @@ -12,7 +12,7 @@ if (HAVE_BETTER_YASM_ELF64) set(EC_ISA_LIB ec_isa) endif (HAVE_BETTER_YASM_ELF64) -add_library(erasure_code ErasureCodePlugin.cc) +add_library(erasure_code STATIC ErasureCodePlugin.cc) target_link_libraries(erasure_code dl) add_dependencies(erasure_code ${CMAKE_SOURCE_DIR}/src/ceph_ver.h) diff --git a/src/json_spirit/CMakeLists.txt b/src/json_spirit/CMakeLists.txt index 104bc4363a86..75a734962dcc 100644 --- a/src/json_spirit/CMakeLists.txt +++ b/src/json_spirit/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(json_spirit +add_library(json_spirit STATIC json_spirit_reader.cpp json_spirit_writer.cpp) target_link_libraries(json_spirit ${Boost_LIBRARIES}) diff --git a/src/librbd/CMakeLists.txt b/src/librbd/CMakeLists.txt index 67c7235c51dc..5acfd0bda0de 100644 --- a/src/librbd/CMakeLists.txt +++ b/src/librbd/CMakeLists.txt @@ -67,10 +67,11 @@ if(WITH_LTTNG) add_dependencies(rbd_internal librbd-tp) endif() -add_library(librbd ${CEPH_SHARED} +add_library(librbd $ $ $ + $ ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc librbd.cc) target_link_libraries(librbd LINK_PRIVATE @@ -85,10 +86,11 @@ target_link_libraries(librbd LINK_PRIVATE cls_journal_client pthread udev + keyutils ${CMAKE_DL_LIBS} ${EXTRALIBS}) -if(${ENABLE_SHARED}) +if(BUILD_SHARED_LIBS) set_target_properties(librbd PROPERTIES VERSION "1.0.0" SOVERSION "1" OUTPUT_NAME rbd) -endif(${ENABLE_SHARED}) +endif(BUILD_SHARED_LIBS) install(TARGETS librbd DESTINATION lib)