aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-07-17 16:05:47 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-07-18 10:58:29 +0200
commit22c5846e6cf12787439ea70ec7ee25b71fd82573 (patch)
tree4afd2acde4c692be0f1b212d511d53deab00261f
parentdce309bf4e18cc20f3f9b03fbd33f63f5c60d025 (diff)
Cpp module: Fix "visibility" property.
The GCC visibility options can be combined. Change-Id: I9fe5c9bb80f2fcc97cd5a5bc0651314ecd180e51 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--doc/reference/modules/cpp-module.qdoc4
-rw-r--r--share/qbs/modules/cpp/CppModule.qbs4
-rw-r--r--share/qbs/modules/cpp/gcc.js4
3 files changed, 7 insertions, 5 deletions
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index 0024d1b23..4acd80f71 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -595,11 +595,13 @@
\table
\row \li \b{Type:} \li \c{string}
- \row \li \b{Allowed Values:} \li \c{"default"}, \c{"hidden"}, \c{"hiddenInlines"}
+ \row \li \b{Allowed Values:} \li \c{"default"}, \c{"hidden"}, \c{"hiddenInlines"},
+ \c{"minimal"}
\row \li \b{Default:} \li \c{"default"}
\endtable
Visibility level for exported symbols.
+ The \c{"minimal"} value combines \c{"hidden"} and \c{"hiddenInlines"}.
\section1 Properties Specific to Windows
diff --git a/share/qbs/modules/cpp/CppModule.qbs b/share/qbs/modules/cpp/CppModule.qbs
index 5271c6fa9..298c1b803 100644
--- a/share/qbs/modules/cpp/CppModule.qbs
+++ b/share/qbs/modules/cpp/CppModule.qbs
@@ -157,11 +157,11 @@ Module {
description: "entry point symbol for an executable or dynamic library"
}
- property string visibility: 'default' // 'default', 'hidden', 'hiddenInlines'
+ property string visibility: 'default'
PropertyOptions {
name: "visibility"
description: "export symbols visibility level"
- allowedValues: ['default', 'hidden', 'hiddenInlines']
+ allowedValues: ['default', 'hidden', 'hiddenInlines', 'minimal']
}
// Platform properties. Those are intended to be set by the toolchain setup
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index f10ae9bd0..3d415c0e6 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -281,9 +281,9 @@ function prepareCompiler(project, product, inputs, outputs, input, output) {
var visibility = ModUtils.moduleProperty(product, 'visibility');
if (!product.type.contains('staticlibrary')
&& !product.moduleProperty("qbs", "toolchain").contains("mingw")) {
- if (visibility === 'hidden')
+ if (visibility === 'hidden' || visibility === 'minimal')
args.push('-fvisibility=hidden');
- if (visibility === 'hiddenInlines')
+ if (visibility === 'hiddenInlines' || visibility === 'minimal')
args.push('-fvisibility-inlines-hidden');
if (visibility === 'default')
args.push('-fvisibility=default')