From 0de55b6c9f5d266f891b746e2d63e6a45d3b3c32 Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Mon, 3 Feb 2014 20:33:48 +0000 Subject: [PATCH] Honor the value of the PlatformToolset environment variable. The Windows SDK 7.1 command prompt sets this value to "WindowsSDK7.1" through its SetEnv.cmd batch script. The MSVC Express Editions do not include a 64bit compiler toolchain, but the Windows SDK does, so this change makes it easier to build qmake projects for x86_64 when using the Express Editions, by running qmake from the SDK command prompt. See also: http://msdn.microsoft.com/en-us/library/9yb4317s%28v=vs.100%29.aspx http://msdn.microsoft.com/en-us/library/ff660764%28v=vs.100%29.aspx Task-number: QTBUG-31185 Change-Id: I49d3e159ed67f64490a3d57c5471d540d76ae13f Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msbuild_objectmodel.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 7702496f3cb..51cb73f0ce1 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -2195,6 +2195,16 @@ QString VCXProjectWriter::generateCondition(const VCConfiguration &config) QString VCXProjectWriter::platformToolSetVersion(const DotNET version, bool winphoneBuild) { + // The PlatformToolset string corresponds to the name of a directory in + // $(VCTargetsPath)\Platforms\{Win32,x64,...}\PlatformToolsets + // e.g. v90, v100, v110, v110_xp, v120_CTP_Nov, v120, or WindowsSDK7.1 + + // This environment variable may be set by a commandline build + // environment such as the Windows SDK command prompt + QByteArray envVar = qgetenv("PlatformToolset"); + if (!envVar.isEmpty()) + return envVar; + switch (version) { case NET2012: