diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2017-12-13 13:37:33 +0100 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2017-12-14 14:11:19 +0000 |
commit | 67c3b232f8990a0197e490651ffd372f62304a7e (patch) | |
tree | 66a5be6dc6de2c585afde2903a7d3dc82e379598 | |
parent | 79ba461a4699b5cea43e086ebd81ad87cd56d5b3 (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.cpp | 19 |
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]); |