]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: add WITH_STATIC_LIBSTDCXX option
authorKefu Chai <kchai@redhat.com>
Sat, 9 Dec 2017 11:27:03 +0000 (19:27 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 15 Dec 2017 11:16:12 +0000 (19:16 +0800)
to link libceph-common with libstdc++ if it is enabled.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 4c2216de6a08f048374292a567dbabd083d64e87)

CMakeLists.txt
src/CMakeLists.txt

index b08365481b7b149046701ba76bee6d0bf08c7a3e..576525db6cc971ef0fab6775f195e80c89b68027 100644 (file)
@@ -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)
index c75a845fd876a353bc051329d6624974b3b1e3d6..4b5b952bbc3c543c6460d9b239daea2180518a09 100644 (file)
@@ -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)