From c6f00e1dd292020c15ea421981f283092b34a251 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 7 Aug 2019 10:10:01 +0200 Subject: [PATCH] Unification of desktop run configurations, step 6 Move special CMake environment modification to CMakeBuildConfiguration. Change-Id: I27f886db48d8c036f2f77f5ae8f239b405cb5721 Reviewed-by: Christian Kandeler --- .../cmakebuildconfiguration.cpp | 14 ++++++++ .../qtsupport/desktoprunconfiguration.cpp | 34 ++++--------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 8fb6a29280b..77e660d3dd0 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -48,6 +48,8 @@ #include #include +#include + #include #include #include @@ -275,6 +277,18 @@ const QList CMakeBuildConfiguration::appTargets() const bti.projectFilePath = ct.sourceDirectory.stringAppended("/"); bti.workingDirectory = ct.workingDirectory; bti.buildKey = ct.title; + + // Workaround for QTCREATORBUG-19354: + bti.runEnvModifier = [this](Environment &env, bool) { + if (HostOsInfo::isWindowsHost()) { + const Kit *k = target()->kit(); + if (const QtSupport::BaseQtVersion *qt = QtSupport::QtKitAspect::qtVersion(k)) { + const QString installBinPath = qt->qmakeProperty("QT_INSTALL_BINS"); + env.prependOrSetPath(installBinPath); + } + } + }; + appTargetList.append(bti); } } diff --git a/src/plugins/qtsupport/desktoprunconfiguration.cpp b/src/plugins/qtsupport/desktoprunconfiguration.cpp index 82db07a19b5..31dd6bd0481 100644 --- a/src/plugins/qtsupport/desktoprunconfiguration.cpp +++ b/src/plugins/qtsupport/desktoprunconfiguration.cpp @@ -25,7 +25,6 @@ #include "desktoprunconfiguration.h" -#include "qtkitinformation.h" #include "qtoutputformatter.h" #include @@ -74,23 +73,13 @@ DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Core::Id id, Ki }); } - if (m_kind == Qmake) { + envAspect->addModifier([this, libAspect](Environment &env) { + BuildTargetInfo bti = buildTargetInfo(); + if (bti.runEnvModifier) + bti.runEnvModifier(env, libAspect->value()); + }); - envAspect->addModifier([this](Environment &env) { - BuildTargetInfo bti = buildTargetInfo(); - if (bti.runEnvModifier) - bti.runEnvModifier(env, aspect()->value()); - }); - - } else if (kind == Qbs) { - - envAspect->addModifier([this](Environment &env) { - bool usingLibraryPaths = aspect()->value(); - - BuildTargetInfo bti = buildTargetInfo(); - if (bti.runEnvModifier) - bti.runEnvModifier(env, usingLibraryPaths); - }); + if (kind == Qbs) { connect(project(), &Project::parsingFinished, envAspect, &EnvironmentAspect::environmentChanged); @@ -107,17 +96,6 @@ DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Core::Id id, Ki libAspect->setVisible(false); - // Workaround for QTCREATORBUG-19354: - if (HostOsInfo::isWindowsHost()) { - envAspect->addModifier([target](Environment &env) { - const Kit *k = target->kit(); - if (const QtSupport::BaseQtVersion *qt = QtSupport::QtKitAspect::qtVersion(k)) { - const QString installBinPath = qt->qmakeProperty("QT_INSTALL_BINS"); - env.prependOrSetPath(installBinPath); - } - }); - } - } setOutputFormatter();