From: Kefu Chai Date: Fri, 18 Mar 2016 05:03:45 +0000 (+0800) Subject: cmake: add visibility flags for exported dso X-Git-Tag: v11.0.0~79^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c7f8b8558fd6af965f413884c627e3eafce9e0d3;p=ceph.git cmake: add visibility flags for exported dso * no regression found, and there's a substantial reduction in the size of generated librados library (both stripped and not). * also remove the duplicated set_target_properties(librbd...) command Signed-off-by: Kefu Chai --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fbbb8795d09a..e583f25c8cdd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -559,8 +559,14 @@ endif() target_link_libraries(librados LINK_PRIVATE osdc osd os global common cls_lock_client ${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS}) if(ENABLE_SHARED) - set_target_properties(librados PROPERTIES OUTPUT_NAME rados VERSION 2.0.0 - SOVERSION 2) + set_target_properties(librados PROPERTIES + OUTPUT_NAME rados + VERSION 2.0.0 + SOVERSION 2 + # 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") endif(ENABLE_SHARED) add_library(librados_api STATIC common/buffer.cc librados/librados.cc) @@ -1142,10 +1148,13 @@ if(WITH_LIBCEPHFS) target_link_libraries(cephfs LINK_PRIVATE client osdc osd os global common ${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS}) -if(ENABLE_SHARED) - set_target_properties(cephfs PROPERTIES OUTPUT_NAME cephfs VERSION 1.0.0 - SOVERSION 1) -endif(ENABLE_SHARED) + if(ENABLE_SHARED) + set_target_properties(cephfs PROPERTIES + OUTPUT_NAME cephfs + VERSION 1.0.0 + SOVERSION 1 + COMPILE_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden") + endif(ENABLE_SHARED) install(TARGETS cephfs DESTINATION lib) install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/include/cephfs" diff --git a/src/libradosstriper/CMakeLists.txt b/src/libradosstriper/CMakeLists.txt index fa8f1b23642e..08fe5249374c 100644 --- a/src/libradosstriper/CMakeLists.txt +++ b/src/libradosstriper/CMakeLists.txt @@ -6,7 +6,8 @@ add_library(radosstriper ${libradosstriper_srcs}) target_link_libraries(radosstriper librados cls_lock_client osdc common pthread ${CRYPTO_LIBS} ${EXTRALIBS}) set_target_properties(radosstriper PROPERTIES OUPUT_NAME radosstriper - VERSION "1.0.0" - SOVERSION "1") + VERSION 1.0.0 + SOVERSION 1 + COMPILE_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden") install(TARGETS radosstriper DESTINATION lib) diff --git a/src/librbd/CMakeLists.txt b/src/librbd/CMakeLists.txt index 384a28957950..b907036768c2 100644 --- a/src/librbd/CMakeLists.txt +++ b/src/librbd/CMakeLists.txt @@ -93,7 +93,10 @@ target_link_libraries(librbd LINK_PRIVATE ${CMAKE_DL_LIBS} ${EXTRALIBS}) if(ENABLE_SHARED) - set_target_properties(librbd PROPERTIES VERSION "1.0.0" SOVERSION "1" - OUTPUT_NAME rbd) + set_target_properties(librbd PROPERTIES + OUTPUT_NAME rbd + VERSION 1.0.0 + SOVERSION 1 + COMPILE_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden") endif(ENABLE_SHARED) install(TARGETS librbd DESTINATION lib)