diff options
author | Naios <naios-dev@live.de> | 2017-12-17 22:53:45 +0100 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2017-12-21 23:31:11 +0100 |
commit | 9d0400211def5b56b33f966707ab764597470c83 (patch) | |
tree | d80f2635714b18ccf6a5de42d87a31e71531c544 /cmake/compiler | |
parent | 9a515c29bab2dadec011f40e4f824bd9409528d4 (diff) |
Build: Export a default interface which doesn't hide symbols in unix automatically
(cherry picked from commit db5d5a03be4829928bd20c7d40a6f576f0b86478)
Diffstat (limited to 'cmake/compiler')
-rw-r--r-- | cmake/compiler/clang/settings.cmake | 5 | ||||
-rw-r--r-- | cmake/compiler/gcc/settings.cmake | 5 | ||||
-rw-r--r-- | cmake/compiler/msvc/settings.cmake | 8 |
3 files changed, 12 insertions, 6 deletions
diff --git a/cmake/compiler/clang/settings.cmake b/cmake/compiler/clang/settings.cmake index 204cc6d245a..5ccacbf9888 100644 --- a/cmake/compiler/clang/settings.cmake +++ b/cmake/compiler/clang/settings.cmake @@ -41,7 +41,10 @@ if (BUILD_SHARED_LIBS) # -fvisibility=hidden sets the default visibility to hidden to prevent exporting of all symbols. target_compile_options(trinity-compile-option-interface INTERFACE - -fPIC + -fPIC) + + target_compile_options(trinity-hidden-symbols-interface + INTERFACE -fvisibility=hidden) # --no-undefined to throw errors when there are undefined symbols diff --git a/cmake/compiler/gcc/settings.cmake b/cmake/compiler/gcc/settings.cmake index d854ff521ce..9139a028f18 100644 --- a/cmake/compiler/gcc/settings.cmake +++ b/cmake/compiler/gcc/settings.cmake @@ -48,9 +48,12 @@ if (BUILD_SHARED_LIBS) target_compile_options(trinity-compile-option-interface INTERFACE -fPIC - -fvisibility=hidden -Wno-attributes) + target_compile_options(trinity-hidden-symbols-interface + INTERFACE + -fvisibility=hidden) + # Should break the build when there are TRINITY_*_API macros missing # but it complains about missing references in precompiled headers. # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--no-undefined") diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index bc4afc5c230..9704b35d6c0 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -109,13 +109,13 @@ message(STATUS "MSVC: Disabled POSIX warnings") # Ignore specific warnings # C4351: new behavior: elements of array 'x' will be default initialized # C4091: 'typedef ': ignored on left of '' when no variable is declared -target_compile_options(trinity-warning-interface +target_compile_options(trinity-compile-option-interface INTERFACE /wd4351 /wd4091) if(NOT WITH_WARNINGS) - target_compile_options(trinity-warning-interface + target_compile_options(trinity-compile-option-interface INTERFACE /wd4996 /wd4355 @@ -131,7 +131,7 @@ endif() if (BUILD_SHARED_LIBS) # C4251: needs to have dll-interface to be used by clients of class '...' # C4275: non dll-interface class ...' used as base for dll-interface class '...' - target_compile_options(trinity-warning-interface + target_compile_options(trinity-compile-option-interface INTERFACE /wd4251 /wd4275) @@ -142,7 +142,7 @@ endif() # Enable and treat as errors the following warnings to easily detect virtual function signature failures: # 'function' : member function does not override any base class virtual member function # 'virtual_function' : no override available for virtual member function from base 'class'; function is hidden -target_compile_options(trinity-warning-interface +target_compile_options(trinity-compile-option-interface INTERFACE /we4263 /we4264) |