diff options
author | Christian Romberg <distjubo@gmail.com> | 2019-05-28 20:07:11 +0200 |
---|---|---|
committer | Christian Romberg <c.romberg@icloud.com> | 2019-10-25 07:04:50 +0000 |
commit | 059172c6332167253760dff419d1f1221185281e (patch) | |
tree | 7bb2c1114923c3e6048836b40c3c9d8808494f6d /qmake/generators/unix | |
parent | b5b9eb68c47cda1dc2a36644867a3550c1b3640e (diff) |
Fix precompiled headers for Clang
Precompiled headers were put in a directory which had exactly the same
name as the binary to be generated. This resulted in a failure with any
mkspec that used clang_pch_style. The g++-mkspec avoid this problem by
extending the directory name. This change adopts this technique for
clang mkspecs.
[ChangeLog][qmake] Fixed precompiled headers for the Clang compiler.
Fixes: QTBUG-72404
Change-Id: I471462e2bcb1e33f19d277c21acde0c04b1ffcd6
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Diffstat (limited to 'qmake/generators/unix')
-rw-r--r-- | qmake/generators/unix/unixmake.cpp | 6 | ||||
-rw-r--r-- | qmake/generators/unix/unixmake2.cpp | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index f4bc0e47ea..e56e8c41b6 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -198,9 +198,8 @@ UnixMakefileGenerator::init() QString headerSuffix; if (project->isActiveConfig("clang_pch_style")) headerSuffix = project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); - else - pchBaseName += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); + pchBaseName += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); pchBaseName += Option::dir_sep; ProString language = project->first(ProKey("QMAKE_LANGUAGE_" + compiler)); @@ -319,8 +318,7 @@ QStringList if(!project->isEmpty("PRECOMPILED_DIR")) header_prefix = project->first("PRECOMPILED_DIR").toQString(); header_prefix += project->first("QMAKE_ORIG_TARGET").toQString(); - if (!project->isActiveConfig("clang_pch_style")) - header_prefix += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); + header_prefix += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); if (project->isActiveConfig("icc_pch_style")) { // icc style ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index 79d19cae8c..a87fbe0fc3 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -1006,8 +1006,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) if(!project->isEmpty("PRECOMPILED_DIR")) precomph_out_dir = project->first("PRECOMPILED_DIR"); precomph_out_dir += project->first("QMAKE_ORIG_TARGET"); - if (!project->isActiveConfig("clang_pch_style")) - precomph_out_dir += project->first("QMAKE_PCH_OUTPUT_EXT"); + precomph_out_dir += project->first("QMAKE_PCH_OUTPUT_EXT"); if (project->isActiveConfig("icc_pch_style")) { // icc style @@ -1126,8 +1125,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) if(!project->isEmpty("PRECOMPILED_DIR")) pchOutput = project->first("PRECOMPILED_DIR"); pchOutput += pchBaseName; - if (!project->isActiveConfig("clang_pch_style")) - pchOutput += project->first("QMAKE_PCH_OUTPUT_EXT"); + pchOutput += project->first("QMAKE_PCH_OUTPUT_EXT"); if (!project->isActiveConfig("icc_pch_style")) { // gcc style (including clang_pch_style) |