diff options
Diffstat (limited to 'qbs')
-rw-r--r-- | qbs/imports/QtcFunctions/functions.js | 19 | ||||
-rw-r--r-- | qbs/imports/QtcLibrary.qbs | 7 | ||||
-rw-r--r-- | qbs/imports/QtcPlugin.qbs | 7 | ||||
-rw-r--r-- | qbs/imports/QtcTool.qbs | 6 |
4 files changed, 34 insertions, 5 deletions
diff --git a/qbs/imports/QtcFunctions/functions.js b/qbs/imports/QtcFunctions/functions.js index 23a51f80e8..136f757767 100644 --- a/qbs/imports/QtcFunctions/functions.js +++ b/qbs/imports/QtcFunctions/functions.js @@ -22,3 +22,22 @@ function versionIsAtLeast(actualVersion, expectedVersion) } return i === expectedVersionParts.length || expectedVersionParts[i] === 0; } + +function commonCxxFlags(qbs) +{ + var flags = []; + if (qbs.toolchain.contains("clang")) + flags.push("-std=c++11"); + else if (qbs.toolchain.contains("gcc")) + flags.push("-std=c++0x"); + return flags; +} + +function commonLinkerFlags(qbs) +{ + var flags = []; + if (qbs.toolchain.contains("clang")) + flags.push("-stdlib=libc++", "-lc++abi"); + return flags; +} + diff --git a/qbs/imports/QtcLibrary.qbs b/qbs/imports/QtcLibrary.qbs index 54f79a3618..ec10919caa 100644 --- a/qbs/imports/QtcLibrary.qbs +++ b/qbs/imports/QtcLibrary.qbs @@ -12,11 +12,14 @@ DynamicLibrary { destinationDirectory: project.ide_library_path cpp.defines: project.generalDefines + cpp.cxxFlags: QtcFunctions.commonCxxFlags(qbs) cpp.linkerFlags: { + var flags = QtcFunctions.commonLinkerFlags(qbs); if (qbs.buildVariant == "release" && (qbs.toolchain.contains("gcc") || qbs.toolchain.contains("mingw"))) - return ["-Wl,-s"] + flags.push("-Wl,-s"); else if (qbs.buildVariant == "debug" && qbs.toolchain.contains("msvc")) - return ["/INCREMENTAL:NO"] // Speed up startup time when debugging with cdb + flags.push("/INCREMENTAL:NO"); // Speed up startup time when debugging with cdb + return flags; } cpp.installNamePrefix: "@rpath/PlugIns/" cpp.rpaths: qbs.targetOS.contains("osx") diff --git a/qbs/imports/QtcPlugin.qbs b/qbs/imports/QtcPlugin.qbs index 33e0c633f4..3fb2b2c2ec 100644 --- a/qbs/imports/QtcPlugin.qbs +++ b/qbs/imports/QtcPlugin.qbs @@ -27,11 +27,14 @@ Product { cpp.installNamePrefix: "@rpath/PlugIns/" + provider + "/" cpp.rpaths: qbs.targetOS.contains("osx") ? ["@loader_path/../..", "@executable_path/.."] : ["$ORIGIN", "$ORIGIN/..", "$ORIGIN/../.."] + cpp.cxxFlags: QtcFunctions.commonCxxFlags(qbs) cpp.linkerFlags: { + var flags = QtcFunctions.commonLinkerFlags(qbs); if (qbs.buildVariant == "release" && (qbs.toolchain.contains("gcc") || qbs.toolchain.contains("mingw"))) - return ["-Wl,-s"] + flags.push("-Wl,-s"); else if (qbs.buildVariant == "debug" && qbs.toolchain.contains("msvc")) - return ["/INCREMENTAL:NO"] // Speed up startup time when debugging with cdb + flags.push("/INCREMENTAL:NO"); // Speed up startup time when debugging with cdb + return flags; } property string pluginIncludeBase: ".." // #include <plugin/header.h> diff --git a/qbs/imports/QtcTool.qbs b/qbs/imports/QtcTool.qbs index 12f30f8950..0c1433df8d 100644 --- a/qbs/imports/QtcTool.qbs +++ b/qbs/imports/QtcTool.qbs @@ -1,12 +1,16 @@ import qbs 1.0 +import QtcFunctions Application { type: "application" // no Mac app bundle Depends { name: "cpp" } cpp.defines: project.generalDefines + cpp.cxxFlags: QtcFunctions.commonCxxFlags(qbs) cpp.linkerFlags: { + var flags = QtcFunctions.commonLinkerFlags(qbs); if (qbs.buildVariant == "release" && (qbs.toolchain.contains("gcc") || qbs.toolchain.contains("mingw"))) - return ["-Wl,-s"] + flags.push("-Wl,-s"); + return flags; } property string toolInstallDir: project.ide_libexec_path |