diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-07-17 16:05:47 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-07-18 10:58:29 +0200 |
commit | 22c5846e6cf12787439ea70ec7ee25b71fd82573 (patch) | |
tree | 4afd2acde4c692be0f1b212d511d53deab00261f | |
parent | dce309bf4e18cc20f3f9b03fbd33f63f5c60d025 (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.qdoc | 4 | ||||
-rw-r--r-- | share/qbs/modules/cpp/CppModule.qbs | 4 | ||||
-rw-r--r-- | share/qbs/modules/cpp/gcc.js | 4 |
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') |