]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: hide non-public symbols in libcephsqlite
authorKefu Chai <kchai@redhat.com>
Sun, 21 Mar 2021 15:02:02 +0000 (23:02 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 23 Mar 2021 03:36:41 +0000 (11:36 +0800)
should not expose non-public symbols.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/CMakeLists.txt

index 4443044cc3b5dfe867bc3e4e0ad9393e04b2f182..b3b1b67ee64488ab7e60c7f4ba3d26ef12d14c5b 100644 (file)
@@ -811,6 +811,13 @@ if(WITH_LIBCEPHSQLITE)
   set(cephsqlite_srcs libcephsqlite.cc SimpleRADOSStriper.cc)
   add_library(cephsqlite ${CEPH_SHARED} ${cephsqlite_srcs})
   target_link_libraries(cephsqlite PRIVATE cls_lock_client librados ceph-common SQLite3::SQLite3 ${EXTRALIBS})
+  set_target_properties(cephsqlite PROPERTIES
+    CXX_VISIBILITY_PRESET hidden
+    VISIBILITY_INLINES_HIDDEN ON)
+  if(NOT APPLE AND NOT WIN32)
+    set_property(TARGET cephsqlite APPEND_STRING PROPERTY
+      LINK_FLAGS " -Wl,--exclude-libs,ALL")
+  endif()
   install(TARGETS cephsqlite DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(WITH_LIBCEPHSQLITE)