so we don't recompile it whenever it is used.
Signed-off-by: Kefu Chai <kchai@redhat.com>
common/crc32c_intel_fast_zero_asm.S)
endif(HAVE_GOOD_YASM_ELF64)
+add_library(common_texttable_obj OBJECT
+ common/TextTable.cc)
+
set(libcommon_files
${CMAKE_BINARY_DIR}/src/include/ceph_ver.h
ceph_ver.c
common/TrackedOp.cc
common/SloppyCRCMap.cc
common/types.cc
- common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
log/Log.cc
log/SubsystemMap.cc
mon/MonCap.cc
test/encoding/ceph_dencoder.cc
$<TARGET_OBJECTS:krbd_objs>
$<TARGET_OBJECTS:parse_secret_objs>
- common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
)
if(${WITH_RADOSGW})
list(APPEND dencoder_srcs
target_link_libraries(mon ${ALLOC_LIBS})
set(ceph_mon_srcs
- ceph_mon.cc
- common/TextTable.cc)
-add_executable(ceph-mon ${ceph_mon_srcs})
+ ceph_mon.cc)
+add_executable(ceph-mon ${ceph_mon_srcs}
+ $<TARGET_OBJECTS:common_texttable_obj>)
add_dependencies(ceph-mon erasure_code_plugins)
target_link_libraries(ceph-mon mon common os global ${EXTRALIBS}
${CMAKE_DL_LIBS})
tools/rbd/action/Resize.cc
tools/rbd/action/Snap.cc
tools/rbd/action/Status.cc
- tools/rbd/action/Watch.cc
- common/TextTable.cc)
- add_executable(rbd ${rbd_srcs} $<TARGET_OBJECTS:common_util_obj>
- $<TARGET_OBJECTS:parse_secret_objs>)
+ tools/rbd/action/Watch.cc)
+ add_executable(rbd ${rbd_srcs}
+ $<TARGET_OBJECTS:common_util_obj>
+ $<TARGET_OBJECTS:parse_secret_objs>
+ $<TARGET_OBJECTS:common_texttable_obj>)
set_target_properties(rbd PROPERTIES OUTPUT_NAME rbd)
target_link_libraries(rbd librbd librados global common keyutils udev
${Boost_REGEX_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY}
# unittest_texttable
add_executable(unittest_texttable EXCLUDE_FROM_ALL
test_texttable.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
)
add_ceph_unittest(unittest_texttable ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_texttable)
target_link_libraries(unittest_texttable mon global)
rbd_backend.cc
detailed_stat_collector.cc
bencher.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
)
add_executable(ceph_smalliobenchrbd
${smalliobenchrbd_srcs}
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
target_link_libraries(ceph_smalliobenchrbd
# cls_test_cls_rbd
add_executable(ceph_test_cls_rbd
test_cls_rbd.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
set_target_properties(ceph_test_cls_rbd PROPERTIES COMPILE_FLAGS
# get_command_descriptions
add_executable(get_command_descriptions
get_command_descriptions.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
)
target_link_libraries(get_command_descriptions
mon
)
add_executable(unittest_librbd EXCLUDE_FROM_ALL
${unittest_librbd_srcs}
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
target_compile_definitions(unittest_librbd PUBLIC "-DTEST_LIBRBD_INTERNALS")
add_executable(ceph_test_librbd
test_main.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
target_link_libraries(ceph_test_librbd
test_support.cc
test_librbd.cc
test_main.cc
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
target_link_libraries(ceph_test_librbd_api
add_executable(ceph_test_librbd_fsx
fsx.cc
$<TARGET_OBJECTS:krbd_objs>
- ${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
+ $<TARGET_OBJECTS:common_texttable_obj>
$<TARGET_OBJECTS:parse_secret_objs>
)
target_link_libraries(ceph_test_librbd_fsx