From 21f5d22f6f07e3c84150cac15f179ec2d3bc05e9 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 12 Sep 2014 17:34:57 +0200 Subject: make it possible to suppress warnings of the vcxproj generator When the user adds a compiler option that qmake doesn't understand, a warning message is printed. One can suppress these warnings now by adding CONFIG+=suppress_vcproj_warnings to the project file. Task-number: QTBUG-37520 Change-Id: Ieb7ad2c900329e76636047dff85824ea0456f608 Reviewed-by: Oswald Buddenhagen --- qmake/generators/win32/msvc_objectmodel.cpp | 18 ++++++++++++++++-- qmake/generators/win32/msvc_objectmodel.h | 1 + qmake/generators/win32/msvc_vcproj.cpp | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) (limited to 'qmake') diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 3d203c2ad0..be7b547115 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -312,6 +312,18 @@ static QString vcCommandSeparator() return cmdSep; } +static void unknownOptionWarning(const char *tool, const char *option) +{ + static bool firstCall = true; + warn_msg(WarnLogic, "Could not parse %s option '%s'; added to AdditionalOptions.", tool, option); + if (firstCall) { + firstCall = false; + warn_msg(WarnLogic, + "You can suppress these warnings with CONFIG+=suppress_vcproj_warnings."); + } +} + + // VCCLCompilerTool ------------------------------------------------- VCCLCompilerTool::VCCLCompilerTool() : AssemblerOutput(asmListingNone), @@ -1148,7 +1160,8 @@ bool VCCLCompilerTool::parseOption(const char* option) break; } if(!found) { - warn_msg(WarnLogic, "Could not parse Compiler option: %s, added as AdditionalOption", option); + if (!config->suppressUnknownOptionWarnings) + unknownOptionWarning("Compiler", option); AdditionalOptions += option; } return true; @@ -1743,7 +1756,8 @@ bool VCLinkerTool::parseOption(const char* option) break; } if(!found) { - warn_msg(WarnLogic, "Could not parse Linker options: %s, added as AdditionalOption", option); + if (!config->suppressUnknownOptionWarnings) + unknownOptionWarning("Linker", option); AdditionalOptions += option; } return found; diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 9a57a2c7a2..2c426afb1a 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -885,6 +885,7 @@ public: VCConfiguration(); ~VCConfiguration(){} + bool suppressUnknownOptionWarnings; DotNET CompilerVersion; bool WinRT, WinPhone, WinPhone80; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 9916db9f92..c10ed3aacd 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -960,6 +960,7 @@ void VcprojGenerator::initConfiguration() // - Do this first since main configuration elements may need // - to know of certain compiler/linker options VCConfiguration &conf = vcProject.Configuration; + conf.suppressUnknownOptionWarnings = project->isActiveConfig("suppress_vcproj_warnings"); conf.CompilerVersion = which_dotnet_version(project->first("MSVC_VER").toLatin1()); initCompilerTool(); -- cgit v1.2.3