]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: s/ENABLE_SHARED/BUILD_SHARED_LIBS/
authorKefu Chai <kchai@redhat.com>
Thu, 26 May 2016 10:59:35 +0000 (18:59 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 27 May 2016 16:34:52 +0000 (00:34 +0800)
* 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 <kchai@redhat.com>
CMakeLists.txt
src/CMakeLists.txt
src/cls/CMakeLists.txt
src/erasure-code/CMakeLists.txt
src/json_spirit/CMakeLists.txt
src/librbd/CMakeLists.txt

index 9552e05fc926d437a2a54937f688e11958c0a34d..167f7ff51aa74df3a87ad9533f90d84553ec171d 100644 (file)
@@ -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)
index eda29f7771c647cbe4ab60baf66390ab7c3713d1..71f2e2fbb05a8c0802cc380b2ff1b6e80dcd3ce1 100644 (file)
@@ -451,10 +451,10 @@ else()
     perfglue/disabled_stubs.cc)
 endif(${HAVE_GPERFTOOLS})
 
-if(${ENABLE_SHARED})
+if(BUILD_SHARED_LIBS)
   list(APPEND libcommon_files
     $<TARGET_OBJECTS:global_common_objs>)
-endif(${ENABLE_SHARED})
+endif(BUILD_SHARED_LIBS)
 
 add_library(common STATIC ${libcommon_files}
   $<TARGET_OBJECTS:mon_common_objs>
@@ -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}
   $<TARGET_OBJECTS:cls_references_objs>
   $<TARGET_OBJECTS:common_util_obj>)
 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_OBJECTS:cls_references_objs>
     $<TARGET_OBJECTS:common_util_obj>)
   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()
 
index 37cfbca1b7cb315a5118f0a42df63811306a2ff6..078c444a79afa340202e25eff87c674c647676d3 100644 (file)
@@ -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)
 
index 0255876ebdadbf74579a72e6ce63918b52e06652..d25465dc6fa38e75ce6c86d75ad394d111dc9072 100644 (file)
@@ -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)
 
index 104bc4363a86ac7a38d7eb41f0710494397164df..75a734962dcc0764a114dfcc2ead444264640325 100644 (file)
@@ -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})
index 67c7235c51dcfabb728be17bcf44017944620a18..5acfd0bda0de6eff09692b5e5a1b2f111935c962 100644 (file)
@@ -67,10 +67,11 @@ if(WITH_LTTNG)
   add_dependencies(rbd_internal librbd-tp)
 endif()
 
-add_library(librbd ${CEPH_SHARED}
+add_library(librbd
   $<TARGET_OBJECTS:osdc_rbd_objs>
   $<TARGET_OBJECTS:common_util_obj>
   $<TARGET_OBJECTS:krbd_objs>
+  $<TARGET_OBJECTS:parse_secret_objs>
   ${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)