summaryrefslogtreecommitdiff
path: root/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp')
-rw-r--r--src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
index 0d8796e926..ba24c94fb9 100644
--- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
+++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
@@ -171,6 +171,20 @@ static MSVCVersion msvcCompilerVersion(const ProjectExplorer::Abi &abi)
return v;
}
+static void filterCompilerLinkerFlags(const ProjectExplorer::Abi &targetAbi, QStringList &flags)
+{
+ for (int i = 0; i < flags.size(); ) {
+ if (targetAbi.architecture() != ProjectExplorer::Abi::UnknownArchitecture
+ && flags[i] == QStringLiteral("-arch")
+ && i + 1 < flags.size()) {
+ flags.removeAt(i);
+ flags.removeAt(i);
+ } else {
+ ++i;
+ }
+ }
+}
+
QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplorer::Kit *k,
const QVariantMap &defaultData) const
{
@@ -234,8 +248,13 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor
data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxxFileInfo.absolutePath());
if (ProjectExplorer::GccToolChain *gcc = dynamic_cast<ProjectExplorer::GccToolChain *>(tc)) {
- data.insert(QLatin1String(CPP_PLATFORMCOMMONCOMPILERFLAGS), gcc->platformCodeGenFlags());
- data.insert(QLatin1String(CPP_PLATFORMLINKERFLAGS), gcc->platformLinkerFlags());
+ QStringList compilerFlags = gcc->platformCodeGenFlags();
+ filterCompilerLinkerFlags(targetAbi, compilerFlags);
+ data.insert(QLatin1String(CPP_PLATFORMCOMMONCOMPILERFLAGS), compilerFlags);
+
+ QStringList linkerFlags = gcc->platformLinkerFlags();
+ filterCompilerLinkerFlags(targetAbi, linkerFlags);
+ data.insert(QLatin1String(CPP_PLATFORMLINKERFLAGS), linkerFlags);
}
if (targetAbi.os() == ProjectExplorer::Abi::MacOS) {