diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 372b0724688..44f883f4546 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -339,10 +339,14 @@ bool BuildConfiguration::isActive() const * to provide hints about which compiler to use. */ void BuildConfiguration::prependCompilerPathToEnvironment(Utils::Environment &env) const +{ + return prependCompilerPathToEnvironment(target()->kit(), env); +} + +void BuildConfiguration::prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env) { const ToolChain *tc - = ToolChainKitInformation::toolChain(target()->kit(), - ProjectExplorer::Constants::CXX_LANGUAGE_ID); + = ToolChainKitInformation::toolChain(k, ProjectExplorer::Constants::CXX_LANGUAGE_ID); if (!tc) return; diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 109cc4481ef..08307eae581 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -91,6 +91,7 @@ public: bool isActive() const override; void prependCompilerPathToEnvironment(Utils::Environment &env) const; + static void prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env); signals: void environmentChanged(); diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index fb89e541291..5d3332b9cb3 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -760,9 +760,14 @@ BuildConfiguration::BuildType QmakeBuildConfiguration::buildType() const void QmakeBuildConfiguration::addToEnvironment(Environment &env) const { - prependCompilerPathToEnvironment(env); - const BaseQtVersion *qt = QtKitInformation::qtVersion(target()->kit()); - if (qt) + setupBuildEnvironment(target()->kit(), env); +} + +void QmakeBuildConfiguration::setupBuildEnvironment(Kit *k, Environment &env) +{ + prependCompilerPathToEnvironment(k, env); + const BaseQtVersion *qt = QtKitInformation::qtVersion(k); + if (qt && !qt->binPath().isEmpty()) env.prependOrSetPath(qt->binPath().toString()); } diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h index 87afc6c9376..36ed9288845 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h @@ -100,6 +100,7 @@ public: BuildType buildType() const override; void addToEnvironment(Utils::Environment &env) const override; + static void setupBuildEnvironment(ProjectExplorer::Kit *k, Utils::Environment &env); void emitProFileEvaluateNeeded(); diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 8124b9d98cf..a2fb3f9fba6 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -665,6 +665,10 @@ QtSupport::ProFileReader *QmakeProject::createProFileReader(const QmakeProFile * else qmakeArgs = bc->configCommandLineArguments(); } + } else { + // Set up a better default environment without using a build configuration: + QmakeBuildConfiguration::setupBuildEnvironment(k, env); + k->addToEnvironment(env); } QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k);