Enable implicit symbol hiding for all libraries, static and shared
This covers all built libraries now and both static and shared builds.
This commit is contained in:
parent
ce975dce7a
commit
22de9bf56d
|
@ -1,4 +1,7 @@
|
||||||
cmake_minimum_required(VERSION 2.8.0)
|
cmake_minimum_required(VERSION 2.8.0)
|
||||||
|
# Allow symbol hiding for both static and shared libs.
|
||||||
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
project(harfbuzz)
|
project(harfbuzz)
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
@ -524,23 +527,19 @@ endif ()
|
||||||
|
|
||||||
## Define harfbuzz library
|
## Define harfbuzz library
|
||||||
add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_headers})
|
add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_headers})
|
||||||
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
|
||||||
if (WIN32 AND NOT MINGW)
|
|
||||||
add_definitions("-DHB_EXTERN=__declspec(dllexport) extern")
|
|
||||||
else ()
|
|
||||||
add_definitions("-DHB_EXTERN=__attribute__(( visibility( \"default\" ) )) extern")
|
|
||||||
set_target_properties(harfbuzz PROPERTIES
|
set_target_properties(harfbuzz PROPERTIES
|
||||||
C_VISIBILITY_PRESET hidden
|
C_VISIBILITY_PRESET hidden
|
||||||
CXX_VISIBILITY_PRESET hidden
|
CXX_VISIBILITY_PRESET hidden
|
||||||
VISIBILITY_INLINES_HIDDEN TRUE)
|
VISIBILITY_INLINES_HIDDEN TRUE)
|
||||||
endif ()
|
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
endif ()
|
|
||||||
|
|
||||||
## Define harfbuzz-subset library
|
## Define harfbuzz-subset library
|
||||||
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
|
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
|
||||||
add_dependencies(harfbuzz-subset harfbuzz)
|
add_dependencies(harfbuzz-subset harfbuzz)
|
||||||
|
set_target_properties(harfbuzz-subset PROPERTIES
|
||||||
|
C_VISIBILITY_PRESET hidden
|
||||||
|
CXX_VISIBILITY_PRESET hidden
|
||||||
|
VISIBILITY_INLINES_HIDDEN TRUE)
|
||||||
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
|
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
|
|
||||||
if (UNIX OR MINGW)
|
if (UNIX OR MINGW)
|
||||||
|
@ -568,11 +567,23 @@ if (HB_HAVE_GOBJECT)
|
||||||
${hb_gobject_headers}
|
${hb_gobject_headers}
|
||||||
${hb_gobject_gen_headers}
|
${hb_gobject_gen_headers}
|
||||||
)
|
)
|
||||||
|
set_target_properties(harfbuzz-gobject PROPERTIES
|
||||||
|
C_VISIBILITY_PRESET hidden
|
||||||
|
CXX_VISIBILITY_PRESET hidden
|
||||||
|
VISIBILITY_INLINES_HIDDEN TRUE)
|
||||||
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/src)
|
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/src)
|
||||||
add_dependencies(harfbuzz-gobject harfbuzz)
|
add_dependencies(harfbuzz-gobject harfbuzz)
|
||||||
target_link_libraries(harfbuzz-gobject harfbuzz ${GOBJECT_LIBRARIES} ${THIRD_PARTY_LIBS})
|
target_link_libraries(harfbuzz-gobject harfbuzz ${GOBJECT_LIBRARIES} ${THIRD_PARTY_LIBS})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (BUILD_SHARED_LIBS)
|
||||||
|
if (WIN32 AND NOT MINGW)
|
||||||
|
add_definitions("-DHB_EXTERN=__declspec(dllexport) extern")
|
||||||
|
else ()
|
||||||
|
add_definitions("-DHB_EXTERN=__attribute__(( visibility( \"default\" ) )) extern")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
# On Windows, g-ir-scanner requires a DLL build in order for it to work
|
# On Windows, g-ir-scanner requires a DLL build in order for it to work
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
if (NOT BUILD_SHARED_LIBS)
|
if (NOT BUILD_SHARED_LIBS)
|
||||||
|
|
Loading…
Reference in New Issue