diff --git a/plugins/custom-definesandincludes/compilerprovider/compilerfactories.cpp b/plugins/custom-definesandincludes/compilerprovider/compilerfactories.cpp --- a/plugins/custom-definesandincludes/compilerprovider/compilerfactories.cpp +++ b/plugins/custom-definesandincludes/compilerprovider/compilerfactories.cpp @@ -27,6 +27,8 @@ #include "gcclikecompiler.h" #include "msvccompiler.h" +#include + QString ClangFactory::name() const { return QStringLiteral("Clang"); @@ -39,7 +41,8 @@ void ClangFactory::registerDefaultCompilers(CompilerProvider* provider) const { - const QString clang = QStringLiteral("clang"); + // no need to check the result, we already do this is CompilerProvider::CompilerProvider() + const QString clang = QStandardPaths::findExecutable(QStringLiteral("clang")); auto compiler = createCompiler(name(), clang, false); provider->registerCompiler(compiler); @@ -57,7 +60,7 @@ void GccFactory::registerDefaultCompilers(CompilerProvider* provider) const { - const QString gcc = QStringLiteral("gcc"); + const QString gcc = QStandardPaths::findExecutable(QStringLiteral("gcc")); auto compiler = createCompiler(name(), gcc, false); provider->registerCompiler(compiler); @@ -75,5 +78,5 @@ void MsvcFactory::registerDefaultCompilers(CompilerProvider* provider) const { - provider->registerCompiler(createCompiler(name(), QStringLiteral("cl.exe"), false)); + provider->registerCompiler(createCompiler(name(), QStandardPaths::findExecutable(QStringLiteral("cl.exe")), false)); } diff --git a/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp b/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp --- a/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp +++ b/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp @@ -210,12 +210,8 @@ const auto path = QFile::decodeName(rt->getenv("PATH")).split(QDir::listSeparator()); for ( const CompilerPointer& compiler : m_compilers ) { - const bool absolutePath = QDir::isAbsolutePath(compiler->path()); - if ((absolutePath && QFileInfo::exists(rt->pathInHost(Path(compiler->path())).toLocalFile())) - || QStandardPaths::findExecutable( compiler->path(), path).isEmpty() ) { + if (!QFileInfo::exists(rt->pathInHost(Path(compiler->path())).toLocalFile())) continue; - } - m_defaultProvider = compiler; break; }