From fb80608ffffa09bd2004733212f18b8b7c92a05b Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Sat, 7 Jan 2023 15:06:21 +0100 Subject: [PATCH] cmake: use cmake _VISIBILITY_PRESET property to pass -fvisibility=hidden --- CMakeLists.txt | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ed852cb4..f13d957db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -612,18 +612,6 @@ if(USE_GCC OR USE_CLANG) endif() endif() - cmake_push_check_state() - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fvisibility=hidden -Werror") - check_c_source_compiles(" - #if !defined(__GNUC__) || __GNUC__ < 4 - #error SDL only uses visibility attributes in GCC 4 or newer - #endif - int main(int argc, char **argv) { return 0; }" HAVE_GCC_FVISIBILITY) - cmake_pop_check_state() - if(HAVE_GCC_FVISIBILITY) - list(APPEND EXTRA_CFLAGS "-fvisibility=hidden") - endif() - check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW) if(HAVE_GCC_WSHADOW) list(APPEND EXTRA_CFLAGS "-Wshadow") @@ -3126,9 +3114,14 @@ if(SDL_SHARED) add_library(SDL3 SHARED ${SOURCE_FILES} ${VERSION_SOURCES}) # alias target for in-tree builds add_library(SDL3::SDL3 ALIAS SDL3) - set_target_properties(SDL3 PROPERTIES POSITION_INDEPENDENT_CODE TRUE) - set_target_properties(SDL3 PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym") - set_target_properties(SDL3 PROPERTIES INTERFACE_LINK_DEPENDS "$") + set_target_properties(SDL3 PROPERTIES + C_VISIBILITY_PRESET "hidden" + CXX_VISIBILITY_PRESET "hidden" + OBJC_VISIBILITY_PRESET "hidden" + POSITION_INDEPENDENT_CODE TRUE + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym" + INTERFACE_LINK_DEPENDS "$" + ) if(NOT SDL_LIBC) if(MSVC AND SDL_CPU_X86) # FIXME: should be added for all architectures (missing symbols for ARM)