From dc612acdc6577594c8f61345cea2de549d7aae34 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 14 Oct 2014 11:47:25 +0200 Subject: fix PRECOMPILED_SOURCE regression in vc(x)projs Commit af760349 in Qt4 broke the possibility of having a PRECOMPILED_SOURCE in a different directory than the PRECOMPILED_HEADER. Do not write the PrecompiledHeaderThrough value for the PRECOMPILED_SOURCE, but use the project default. The msbuild code path needed adjustments to write the UsePrecompiledHeader value, even if PrecompiledHeaderThrough is empty. Task-number: QTBUG-41917 Change-Id: I74e621f6618cf056e3967c99a2215f76c346b9ee Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msbuild_objectmodel.cpp | 8 +++++--- qmake/generators/win32/msvc_objectmodel.cpp | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'qmake') diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 6751dc0f6b..5acd60edea 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -1956,11 +1956,13 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml } if ( !filter.CompilerTool.PrecompiledHeaderThrough.isEmpty() ) { - xml << tag("PrecompiledHeaderFile") << attrTag("Condition", condition) - << valueTag(filter.CompilerTool.PrecompiledHeaderThrough) - << tag("PrecompiledHeader") + << valueTag(filter.CompilerTool.PrecompiledHeaderThrough); + } + + if (filter.CompilerTool.UsePrecompiledHeader != pchUnset) { + xml << tag("PrecompiledHeader") << attrTag("Condition", condition) << valueTag(toString(filter.CompilerTool.UsePrecompiledHeader)); } diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index f8e67718f7..aa2d40ad77 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -2237,7 +2237,8 @@ void VCFilter::modifyPCHstage(QString str) useCompilerTool = true; // Setup PCH options CompilerTool.UsePrecompiledHeader = (isCFile ? pchNone : pchCreateUsingSpecific); - CompilerTool.PrecompiledHeaderThrough = (isCPPFile ? Project->precompHFilename : QString("$(NOINHERIT)")); + if (isCFile) + CompilerTool.PrecompiledHeaderThrough = QLatin1String("$(NOINHERIT)"); CompilerTool.ForcedIncludeFiles = QStringList("$(NOINHERIT)"); } -- cgit v1.2.3