diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-15 19:47:57 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-15 19:47:57 +0200 |
commit | 40a1f69e8663fb79560c26cfad5ead45b1b3ee5f (patch) | |
tree | a8ceb093a098a38b29c0fe27e41af480ae10b876 /qmake/generators/unix/unixmake.cpp | |
parent | 446afc10451d5097d7bd20b1b8d20325c4d54fa5 (diff) | |
parent | 6b2071c697d4c48f0cd289b28b443ebffc3432e6 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
configure.json
mkspecs/macx-tvos-clang/qmake.conf
mkspecs/macx-watchos-clang/qmake.conf
Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
Diffstat (limited to 'qmake/generators/unix/unixmake.cpp')
-rw-r--r-- | qmake/generators/unix/unixmake.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index 0e29f469ef..794d04a6e9 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -194,6 +194,18 @@ UnixMakefileGenerator::init() if (!language.isEmpty()) { pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT}"), escapeFilePath(pchBaseName + language + headerSuffix)); + const ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + for (const ProString &arch : pchArchs) { + QString suffix = headerSuffix; + suffix.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + if (project->isActiveConfig("clang_pch_style") + && (suffix.endsWith(QLatin1String(".pch")) + || suffix.endsWith(QLatin1String(".gch")))) { + suffix.chop(4); // must omit header suffix for -include to recognize the PCH + } + pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT_") + arch + QLatin1Char('}'), + escapeFilePath(pchBaseName + language + suffix)); + } } } @@ -351,9 +363,17 @@ QStringList if (!file.endsWith(extension.toQString())) continue; - QString precompiledHeader = header_prefix + language + header_suffix; - if (!ret.contains(precompiledHeader)) - ret += precompiledHeader; + ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + if (pchArchs.isEmpty()) + pchArchs << ProString(); // normal single-arch PCH + for (const ProString &arch : qAsConst(pchArchs)) { + QString suffix = header_suffix; + if (!arch.isEmpty()) + suffix.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + QString precompiledHeader = header_prefix + language + suffix; + if (!ret.contains(precompiledHeader)) + ret += precompiledHeader; + } goto foundPrecompiledDependency; } |