From 348012f15f31bc08062881f3d81de2f84637dbab Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 2 May 2013 17:43:17 +0200 Subject: qmake/vcxproj: resurrect support for /we compiler switch The vcxproj format supports the /we compiler switch as TreatSpecificWarningsAsErrors tag. Support for this switch got lost during refactoring of the vc(x)proj generators for Qt 4.8.0. Task-number: QTBUG-29098 Change-Id: I607e907dcb9c1bc7d261053b6d757941ec7db822 Reviewed-by: Oswald Buddenhagen (cherry picked from commit a3d1d41d1d88b989fe7c460ef32b4f8606aafe0c) --- qmake/generators/win32/msbuild_objectmodel.cpp | 2 +- qmake/generators/win32/msvc_objectmodel.cpp | 6 ++++++ qmake/generators/win32/msvc_objectmodel.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index e0b9917f9f..eba49f9681 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -1329,7 +1329,7 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCCLCompilerTool &tool) << attrTagT(_StringPooling, tool.StringPooling) << attrTagS(_StructMemberAlignment, toString(tool.StructMemberAlignment)) << attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner) -//unused << attrTagS(_TreatSpecificWarningsAsErrors, tool.TreatSpecificWarningsAsErrors) + << attrTagX(_TreatSpecificWarningsAsErrors, tool.TreatSpecificWarningsAsErrors, ";") << attrTagT(_TreatWarningAsError, tool.WarnAsError) << attrTagT(_TreatWChar_tAsBuiltInType, tool.TreatWChar_tAsBuiltInType) << attrTagT(_UndefineAllPreprocessorDefinitions, tool.UndefineAllPreprocessorDefinitions) diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index a8c936be11..2472354f74 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -1113,6 +1113,12 @@ bool VCCLCompilerTool::parseOption(const char* option) case 'd': DisableSpecificWarnings += option+3; break; + case 'e': + if (config->CompilerVersion <= NET2008) + AdditionalOptions += option; + else + TreatSpecificWarningsAsErrors += option + 3; + break; default: AdditionalOptions += option; } diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index a5a0ba5a5c..a941b67773 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -558,6 +558,7 @@ public: QStringList UndefinePreprocessorDefinitions; pchOption UsePrecompiledHeader; triState UseUnicodeForAssemblerListing; + QStringList TreatSpecificWarningsAsErrors; triState WarnAsError; warningLevelOption WarningLevel; triState WholeProgramOptimization; -- cgit v1.2.3