aboutsummaryrefslogtreecommitdiff
path: root/cmake/compiler
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2017-12-17 22:53:45 +0100
committerNaios <naios-dev@live.de>2017-12-20 04:04:28 +0100
commitdb5d5a03be4829928bd20c7d40a6f576f0b86478 (patch)
treea513ef0b85ac65bac5897f57e85cd9ff2726bd34 /cmake/compiler
parent891960edbe3768284a3892ae3edbe4afb6395e8f (diff)
Build: Export a default interface which doesn't hide symbols in unix automatically
Diffstat (limited to 'cmake/compiler')
-rw-r--r--cmake/compiler/clang/settings.cmake5
-rw-r--r--cmake/compiler/gcc/settings.cmake5
-rw-r--r--cmake/compiler/msvc/settings.cmake8
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 eec3857e0d8..96197688d58 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -110,13 +110,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
@@ -132,7 +132,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)
@@ -143,7 +143,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)