diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-05-23 13:32:17 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-06-02 10:00:51 (GMT) |
commit | cd1fa537a03377974a4d0a27e592785f931a41e5 (patch) | |
tree | 4b8ca66e58a08ed81c1200700317b8ae6737a7d2 /Source/cmTarget.cxx | |
parent | 0e9f4bc00c6b26f254e74063e4026ac33b786513 (diff) | |
download | CMake-cd1fa537a03377974a4d0a27e592785f931a41e5.zip CMake-cd1fa537a03377974a4d0a27e592785f931a41e5.tar.gz CMake-cd1fa537a03377974a4d0a27e592785f931a41e5.tar.bz2 |
Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property.
This corresponds to the g++ and clang++
option -fvisibility-inlines-hidden on linux. On Windows with MinGW,
this corresponds to -fno-keep-inline-dllexport. That option is
not supported by clang currently.
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r-- | Source/cmTarget.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index c34c3ab..47e36fd 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -942,6 +942,17 @@ void cmTarget::DefineProperties(cmake *cm) "CMAKE_CXX_VISIBILITY_PRESET if it is set when a target is created."); cm->DefineProperty + ("VISIBILITY_INLINES_HIDDEN", cmProperty::TARGET, + "Whether to add a compile flag to hide symbols of inline functions", + "The VISIBILITY_INLINES_HIDDEN property determines whether a flag for " + "hiding symbols for inline functions. the value passed used in " + "a visibility related compile option, such as -fvisibility=. This " + "property only has an affect for libraries and executables with " + "exports. This property is initialized by the value of the variable " + "CMAKE_VISIBILITY_INLINES_HIDDEN if it is set when a target is " + "created."); + + cm->DefineProperty ("POSITION_INDEPENDENT_CODE", cmProperty::TARGET, "Whether to create a position-independent target", "The POSITION_INDEPENDENT_CODE property determines whether position " @@ -1580,6 +1591,7 @@ void cmTarget::SetMakefile(cmMakefile* mf) this->SetPropertyDefault("C_VISIBILITY_PRESET", 0); this->SetPropertyDefault("CXX_VISIBILITY_PRESET", 0); + this->SetPropertyDefault("VISIBILITY_INLINES_HIDDEN", 0); if(this->TargetTypeValue == cmTarget::SHARED_LIBRARY || this->TargetTypeValue == cmTarget::MODULE_LIBRARY) |