]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: add visibility flags for exported dso
authorKefu Chai <kchai@redhat.com>
Fri, 18 Mar 2016 05:03:45 +0000 (13:03 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 22 Jun 2016 03:30:46 +0000 (11:30 +0800)
* 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 <kchai@redhat.com>
src/CMakeLists.txt
src/libradosstriper/CMakeLists.txt
src/librbd/CMakeLists.txt

index fbbb8795d09ae6d09c50b720300e963c91f1ccce..e583f25c8cdd5ca388db732229a18880a55d0d39 100644 (file)
@@ -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"
index fa8f1b23642e4646125e9cc3f75ccac4d07a1af3..08fe5249374cc2b78466430446247cbfeea93b38 100644 (file)
@@ -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)
index 384a28957950c1a1769e076656b6e6f16130c299..b907036768c2975051d997e0e8139bc22ecf8d1c 100644 (file)
@@ -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)