aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2017-12-13 13:37:33 +0100
committerAlessandro Portale <alessandro.portale@qt.io>2017-12-14 14:11:19 +0000
commit67c3b232f8990a0197e490651ffd372f62304a7e (patch)
tree66a5be6dc6de2c585afde2903a7d3dc82e379598
parent79ba461a4699b5cea43e086ebd81ad87cd56d5b3 (diff)
ProjectExplorer: No native dir separators in detectCppBuildTools2015
Having native dir separators in the autodetected C++ build tools 2015 caused Qt Creator to add all msvc compilers a second time as manual MSVC versions. Reason was one different dir separator during string comparison in AbstractMsvcToolChain::operator == detectCppBuildTools2017 did the conversion right Change-Id: Iff04428bcc47636b161b944c94cadf12b0c549da Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 2f0db8d074..a64b749e33 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -146,16 +146,20 @@ QDebug operator<<(QDebug d, const VisualStudioInstallation &i)
return d;
}
-// Detect build tools introduced with MSVC2017
-static Utils::optional<VisualStudioInstallation> detectCppBuildTools2017()
+static QString windowsProgramFilesDir()
{
#ifdef Q_OS_WIN64
const char programFilesC[] = "ProgramFiles(x86)";
#else
const char programFilesC[] = "ProgramFiles";
#endif
+ return QDir::fromNativeSeparators(QFile::decodeName(qgetenv(programFilesC)));
+}
- const QString installPath = QDir::fromNativeSeparators(QFile::decodeName(qgetenv(programFilesC)))
+// Detect build tools introduced with MSVC2017
+static Utils::optional<VisualStudioInstallation> detectCppBuildTools2017()
+{
+ const QString installPath = windowsProgramFilesDir()
+ "/Microsoft Visual Studio/2017/BuildTools";
const QString vcVarsPath = installPath + "/VC/Auxiliary/Build";
const QString vcVarsAllPath = vcVarsPath + "/vcvarsall.bat";
@@ -887,14 +891,9 @@ static void detectCppBuildTools2015(QList<ToolChain *> *list)
{" (x64_arm)", "amd64_arm", Abi::ArmArchitecture, Abi::PEFormat, 64}
};
-#ifdef Q_OS_WIN64
- const char programFilesC[] = "ProgramFiles(x86)";
-#else
- const char programFilesC[] = "ProgramFiles";
-#endif
const QString name = QStringLiteral("Microsoft Visual C++ Build Tools");
- const QString vcVarsBat = QFile::decodeName(qgetenv(programFilesC))
- + QLatin1Char('/') + name + QStringLiteral("/vcbuildtools.bat");
+ const QString vcVarsBat = windowsProgramFilesDir()
+ + QLatin1Char('/') + name + QStringLiteral("/vcbuildtools.bat");
if (!QFileInfo(vcVarsBat).isFile())
return;
const size_t count = sizeof(entries) / sizeof(entries[0]);