mirror of
https://github.com/ceph/ceph
synced 2025-04-01 14:51:13 +00:00
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 <kchai@redhat.com>
This commit is contained in:
parent
49518a4f02
commit
1dbfb264ff
@ -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)
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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})
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user