summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32/msvc_objectmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/generators/win32/msvc_objectmodel.cpp')
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index ac57a3379c..1093d9849e 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -33,13 +33,43 @@
#include <ioutils.h>
#include <qscopedpointer.h>
-#include <qstringlist.h>
#include <qfileinfo.h>
using namespace QMakeInternal;
QT_BEGIN_NAMESPACE
+static DotNET vsVersionFromString(const char *versionString)
+{
+ struct VSVersionMapping
+ {
+ const char *str;
+ DotNET version;
+ };
+ static VSVersionMapping mapping[] = {
+ "7.0", NET2002,
+ "7.1", NET2003,
+ "8.0", NET2005,
+ "9.0", NET2008,
+ "10.0", NET2010,
+ "11.0", NET2012,
+ "12.0", NET2013,
+ "14.0", NET2015,
+ "15.0", NET2017
+ };
+ DotNET result = NETUnknown;
+ for (const auto entry : mapping) {
+ if (strcmp(entry.str, versionString) == 0)
+ return entry.version;
+ }
+ return result;
+}
+
+DotNET vsVersionFromString(const ProString &versionString)
+{
+ return vsVersionFromString(versionString.toLatin1().constData());
+}
+
// XML Tags ---------------------------------------------------------
const char _Configuration[] = "Configuration";
const char _Configurations[] = "Configurations";
@@ -1123,7 +1153,12 @@ bool VCCLCompilerTool::parseOption(const char* option)
}
found = false; break;
case 'u':
- UndefineAllPreprocessorDefinitions = _True;
+ if (!second)
+ UndefineAllPreprocessorDefinitions = _True;
+ else if (second == 't' && third == 'f' && fourth == '8')
+ AdditionalOptions += option;
+ else
+ found = false;
break;
case 'v':
if(second == 'd' || second == 'm') {
@@ -1181,6 +1216,7 @@ VCLinkerTool::VCLinkerTool()
: DataExecutionPrevention(unset),
EnableCOMDATFolding(optFoldingDefault),
GenerateDebugInformation(unset),
+ DebugInfoOption(linkerDebugOptionNone),
GenerateMapFile(unset),
HeapCommitSize(-1),
HeapReserveSize(-1),
@@ -2136,7 +2172,6 @@ VCPreLinkEventTool::VCPreLinkEventTool()
VCConfiguration::VCConfiguration()
: WinRT(false),
- WinPhone(false),
ATLMinimizesCRunTimeLibraryUsage(unset),
BuildBrowserInformation(unset),
CharacterSet(charSetNotSet),