common/crc32c_intel_fast_zero_asm.S)
endif(HAVE_GOOD_YASM_ELF64)
+add_library(common_buffer_obj OBJECT
+ common/buffer.cc)
+
add_library(common_texttable_obj OBJECT
common/TextTable.cc)
common/TrackedOp.cc
common/SloppyCRCMap.cc
common/types.cc
+ $<TARGET_OBJECTS:common_buffer_obj>
$<TARGET_OBJECTS:common_texttable_obj>
log/Log.cc
log/SubsystemMap.cc
common/pipe.c
common/ceph_argparse.cc
common/ceph_context.cc
- common/buffer.cc
common/code_environment.cc
common/dout.cc
common/signal.cc
target_link_libraries(cephfs LINK_PRIVATE client
${CRYPTO_LIBS} ${EXTRALIBS})
if(ENABLE_SHARED)
+ foreach(name common client osdc)
+ set(CEPHFS_LINK_FLAGS "${CEPHFS_LINK_FLAGS} -Wl,--exclude-libs,lib${name}.a")
+ endforeach()
set_target_properties(cephfs PROPERTIES
OUTPUT_NAME cephfs
VERSION 1.0.0
- SOVERSION 1)
+ SOVERSION 1
+ LINK_FLAGS ${CEPHFS_LINK_FLAGS})
endif(ENABLE_SHARED)
install(TARGETS cephfs DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(DIRECTORY
RadosClient.cc)
add_library(librados ${CEPH_SHARED}
librados.cc
- $<TARGET_OBJECTS:librados_objs>)
+ $<TARGET_OBJECTS:librados_objs>
+ $<TARGET_OBJECTS:common_buffer_obj>)
add_dependencies(librados osdc)
if(WITH_LTTNG)
add_dependencies(librados rados-tp)
# use COMPILE_FLAGS for the backward compatibility with cmake 2.8.11, should have been:
# CXX_VISIBILITY_PRESET hidden
# VISIBILITY_INLINES_HIDDEN ON
- COMPILE_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden")
+ COMPILE_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden"
+ LINK_FLAGS "-Wl,--exclude-libs,ALL")
endif(ENABLE_SHARED)
install(TARGETS librados DESTINATION ${CMAKE_INSTALL_LIBDIR})
${UNITTEST_CXX_FLAGS})
target_link_libraries(test_rgw_ldap
librados
+ common
${OPENLDAP_LIBRARIES}
${Boost_LIBRARIES}
${UNITTEST_LIBS}
encoding.cc
)
add_ceph_unittest(unittest_encoding ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_encoding)
-target_link_libraries(unittest_encoding librados pthread rt m ${BLKID_LIBRARIES})
+target_link_libraries(unittest_encoding common librados pthread rt m ${BLKID_LIBRARIES})
# unittest_addrs
add_executable(unittest_addrs
test_addrs.cc
)
add_ceph_unittest(unittest_addrs ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_addrs)
-target_link_libraries(unittest_addrs librados pthread rt m ${BLKID_LIBRARIES})
+target_link_libraries(unittest_addrs common librados pthread rt m ${BLKID_LIBRARIES})
# unittest_workqueue
add_executable(unittest_workqueue
heartbeat_map.cc
)
add_ceph_unittest(unittest_heartbeatmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_heartbeatmap)
-target_link_libraries(unittest_heartbeatmap global)
+target_link_libraries(unittest_heartbeatmap common global)
if(${WITH_RADOSGW})
# unittest_formatter
test.cc
TestCase.cc)
add_library(radostest STATIC ${libradostest_srcs})
+target_link_libraries(radostest common json_spirit)
set_target_properties(radostest PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
# ceph_test_rados_api_cmd
install(TARGETS ceph-objectstore-tool DESTINATION bin)
add_executable(ceph-client-debug ceph-client-debug.cc)
-target_link_libraries(ceph-client-debug cephfs librados global common)
+target_link_libraries(ceph-client-debug cephfs global client)
install(TARGETS ceph-client-debug DESTINATION bin)
add_executable(ceph-kvstore-tool ceph_kvstore_tool.cc)