diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-04-11 14:54:53 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2017-04-14 00:00:56 +0000 |
commit | 097073fa678c6526620f786fbdd6e913a77d54d5 (patch) | |
tree | b0b5abadb7575cb3df616c21e8d0a7e1a2704056 /qmake/generators/unix/unixmake.cpp | |
parent | eca6f5492c4f32ad4e1df25ab923401dc5980c76 (diff) |
Fix precompiled headers on Apple platforms, with multiple architectures
The original commit only added support for GCC and Clang, but not ICC.
Amends 73331eeb
Change-Id: Id7638cf1b538edb1008fb3aa10754c1f517a994f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Diffstat (limited to 'qmake/generators/unix/unixmake.cpp')
-rw-r--r-- | qmake/generators/unix/unixmake.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index b485a7ec84..1073386a82 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -180,6 +180,13 @@ UnixMakefileGenerator::init() // icc style pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT}"), escapeFilePath(pchBaseName + project->first("QMAKE_PCH_OUTPUT_EXT"))); + const ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + for (const ProString &arch : pchArchs) { + QString suffix = project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); + suffix.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT_") + arch + QLatin1Char('}'), + escapeFilePath(pchBaseName + suffix)); + } } else { // gcc style (including clang_pch_style) QString headerSuffix; @@ -334,10 +341,19 @@ QStringList header_prefix += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); if (project->isActiveConfig("icc_pch_style")) { // icc style - for(QStringList::Iterator it = Option::cpp_ext.begin(); it != Option::cpp_ext.end(); ++it) { - if(file.endsWith(*it)) { - ret += header_prefix; - break; + ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + if (pchArchs.isEmpty()) + pchArchs << ProString(); // normal single-arch PCH + for (const ProString &arch : qAsConst(pchArchs)) { + auto pfx = header_prefix; + if (!arch.isEmpty()) + pfx.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + for (QStringList::Iterator it = Option::cpp_ext.begin(); + it != Option::cpp_ext.end(); ++it) { + if (file.endsWith(*it)) { + ret += pfx; + break; + } } } } else { |