From c869054645daee3bd88abc09ea180848578bb782 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 9 Dec 2017 19:27:03 +0800 Subject: [PATCH] cmake: add WITH_STATIC_LIBSTDCXX option to link libceph-common with libstdc++ if it is enabled. Signed-off-by: Kefu Chai (cherry picked from commit 4c2216de6a08f048374292a567dbabd083d64e87) --- CMakeLists.txt | 7 +++++++ src/CMakeLists.txt | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b08365481b7b1..576525db6cc97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,6 +169,13 @@ else(ENABLE_SHARED) endif(ENABLE_SHARED) set(CMAKE_POSITION_INDEPENDENT_CODE ${ENABLE_SHARED}) +option(WITH_STATIC_LIBSTDCXX "Link against libstdc++ statically" OFF) +if(WITH_STATIC_LIBSTDCXX) + if(NOT CMAKE_COMPILER_IS_GNUCXX) + message(FATAL_ERROR "Please use GCC to enable WITH_STATIC_LIBSTDCXX") + endif() +endif() + option(WITH_RDMA "Enable RDMA in async messenger" ON) if(WITH_RDMA) find_package(rdma REQUIRED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c75a845fd876a..4b5b952bbc3c5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -688,6 +688,10 @@ target_link_libraries(ceph-common ${ceph_common_deps}) set_target_properties(ceph-common PROPERTIES SOVERSION 0 INSTALL_RPATH "") +if(WITH_STATIC_LIBSTDCXX) + set_target_properties(ceph-common PROPERTIES + LINK_FLAGS "-static-libstdc++ -static-libgcc") +endif() install(TARGETS ceph-common DESTINATION ${CMAKE_INSTALL_PKGLIBDIR}) add_library(common_utf8 STATIC common/utf8.c) -- 2.39.5