diff --git a/src/plugins/haskell/haskellrunconfiguration.cpp b/src/plugins/haskell/haskellrunconfiguration.cpp index c4caf175058..76d25e557c3 100644 --- a/src/plugins/haskell/haskellrunconfiguration.cpp +++ b/src/plugins/haskell/haskellrunconfiguration.cpp @@ -9,7 +9,6 @@ #include "haskellsettings.h" #include -#include #include #include #include @@ -35,7 +34,8 @@ HaskellExecutableAspect::HaskellExecutableAspect() HaskellRunConfiguration::HaskellRunConfiguration(Target *target, Utils::Id id) : RunConfiguration(target, id) { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); addAspect(); addAspect(macroExpander()); @@ -67,7 +67,7 @@ Runnable HaskellRunConfiguration::runnable() const args << "--" << arguments; r.workingDirectory = projectDirectory; - r.environment = aspect()->environment(); + r.environment = aspect()->environment(); r.command = {r.environment.searchInPath(settings().stackPath().path()), args}; return r; } diff --git a/src/plugins/mesonprojectmanager/mesonrunconfiguration.cpp b/src/plugins/mesonprojectmanager/mesonrunconfiguration.cpp index 3731ec4da6b..4af312fda9c 100644 --- a/src/plugins/mesonprojectmanager/mesonrunconfiguration.cpp +++ b/src/plugins/mesonprojectmanager/mesonrunconfiguration.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -24,7 +23,8 @@ namespace Internal { MesonRunConfiguration::MesonRunConfiguration(Target *target, Utils::Id id) : RunConfiguration{target, id} { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); addAspect(target, ExecutableAspect::RunDevice); addAspect(macroExpander()); @@ -65,7 +65,7 @@ void MesonRunConfiguration::updateTargetInformation() aspect()->setUseTerminalHint(bti.usesTerminal); aspect()->setExecutable(bti.targetFilePath); aspect()->setDefaultWorkingDirectory(bti.workingDirectory); - emit aspect()->environmentChanged(); + emit aspect()->environmentChanged(); } MesonRunConfigurationFactory::MesonRunConfigurationFactory() diff --git a/src/plugins/nim/project/nimblerunconfiguration.cpp b/src/plugins/nim/project/nimblerunconfiguration.cpp index f26a375410b..8fa24ee33e4 100644 --- a/src/plugins/nim/project/nimblerunconfiguration.cpp +++ b/src/plugins/nim/project/nimblerunconfiguration.cpp @@ -7,7 +7,6 @@ #include "nimconstants.h" #include "nimtr.h" -#include #include #include #include @@ -27,7 +26,9 @@ public: NimbleRunConfiguration(Target *target, Utils::Id id) : RunConfiguration(target, id) { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); + addAspect(target, ExecutableAspect::RunDevice); addAspect(macroExpander()); addAspect(macroExpander(), envAspect); diff --git a/src/plugins/nim/project/nimrunconfiguration.cpp b/src/plugins/nim/project/nimrunconfiguration.cpp index 5faaa0871c0..79eeeb898dd 100644 --- a/src/plugins/nim/project/nimrunconfiguration.cpp +++ b/src/plugins/nim/project/nimrunconfiguration.cpp @@ -8,7 +8,6 @@ #include "../nimtr.h" #include -#include #include #include @@ -27,7 +26,9 @@ public: NimRunConfiguration(Target *target, Utils::Id id) : RunConfiguration(target, id) { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); + addAspect(target, ExecutableAspect::RunDevice); addAspect(macroExpander()); addAspect(macroExpander(), envAspect); diff --git a/src/plugins/projectexplorer/CMakeLists.txt b/src/plugins/projectexplorer/CMakeLists.txt index 1ed25adadac..a016924bc70 100644 --- a/src/plugins/projectexplorer/CMakeLists.txt +++ b/src/plugins/projectexplorer/CMakeLists.txt @@ -115,7 +115,6 @@ add_qtc_plugin(ProjectExplorer ldparser.cpp ldparser.h lldparser.cpp lldparser.h linuxiccparser.cpp linuxiccparser.h - localenvironmentaspect.cpp localenvironmentaspect.h makestep.cpp makestep.h miniprojecttargetselector.cpp miniprojecttargetselector.h msvcparser.cpp msvcparser.h diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp index 9d25bb7dfe6..00f7225d0df 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp @@ -3,7 +3,6 @@ #include "customexecutablerunconfiguration.h" -#include "localenvironmentaspect.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" #include "runconfigurationaspects.h" @@ -24,7 +23,8 @@ CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *targe CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *target, Id id) : RunConfiguration(target, id) { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); auto exeAspect = addAspect(target, ExecutableAspect::HostDevice); exeAspect->setSettingsKey("ProjectExplorer.CustomExecutableRunConfiguration.Executable"); diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.cpp b/src/plugins/projectexplorer/desktoprunconfiguration.cpp index 286f5c4b6e0..8b8cdf2b793 100644 --- a/src/plugins/projectexplorer/desktoprunconfiguration.cpp +++ b/src/plugins/projectexplorer/desktoprunconfiguration.cpp @@ -4,7 +4,6 @@ #include "desktoprunconfiguration.h" #include "buildsystem.h" -#include "localenvironmentaspect.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" #include "runconfigurationaspects.h" @@ -43,7 +42,8 @@ private: DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kind) : RunConfiguration(target, id), m_kind(kind) { - auto envAspect = addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); addAspect(target, ExecutableAspect::RunDevice); addAspect(macroExpander()); @@ -122,7 +122,7 @@ void DesktopRunConfiguration::updateTargetInformation() aspect()->setExecutable(bti.targetFilePath); aspect()->setDefaultWorkingDirectory(bti.workingDirectory); - emit aspect()->environmentChanged(); + emit aspect()->environmentChanged(); } } diff --git a/src/plugins/projectexplorer/environmentaspect.cpp b/src/plugins/projectexplorer/environmentaspect.cpp index dc3abedbe74..09bfeb9c80d 100644 --- a/src/plugins/projectexplorer/environmentaspect.cpp +++ b/src/plugins/projectexplorer/environmentaspect.cpp @@ -3,8 +3,11 @@ #include "environmentaspect.h" +#include "buildconfiguration.h" #include "environmentaspectwidget.h" +#include "kit.h" #include "projectexplorertr.h" +#include "target.h" #include #include @@ -102,6 +105,27 @@ int EnvironmentAspect::addPreferredBaseEnvironment(const QString &displayName, return index; } +void EnvironmentAspect::setSupportForBuildEnvironment(Target *target) +{ + setIsLocal(true); + addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {}); + + addSupportedBaseEnvironment(Tr::tr("System Environment"), [] { + return Environment::systemEnvironment(); + }); + addPreferredBaseEnvironment(Tr::tr("Build Environment"), [target] { + if (BuildConfiguration *bc = target->activeBuildConfiguration()) + return bc->environment(); + // Fallback for targets without buildconfigurations: + return target->kit()->buildEnvironment(); + }); + + connect(target, &Target::activeBuildConfigurationChanged, + this, &EnvironmentAspect::environmentChanged); + connect(target, &Target::buildEnvironmentChanged, + this, &EnvironmentAspect::environmentChanged); +} + void EnvironmentAspect::fromMap(const QVariantMap &map) { m_base = map.value(QLatin1String(BASE_KEY), -1).toInt(); diff --git a/src/plugins/projectexplorer/environmentaspect.h b/src/plugins/projectexplorer/environmentaspect.h index 9ba2f8a9835..97ce26f017d 100644 --- a/src/plugins/projectexplorer/environmentaspect.h +++ b/src/plugins/projectexplorer/environmentaspect.h @@ -39,6 +39,8 @@ public: int addPreferredBaseEnvironment(const QString &displayName, const std::function &getter); + void setSupportForBuildEnvironment(Target *target); + QString currentDisplayName() const; const QStringList displayNames() const; diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp deleted file mode 100644 index 7510d636e5f..00000000000 --- a/src/plugins/projectexplorer/localenvironmentaspect.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "localenvironmentaspect.h" - -#include "buildconfiguration.h" -#include "kit.h" -#include "projectexplorertr.h" -#include "target.h" - -using namespace Utils; - -namespace ProjectExplorer { - -LocalEnvironmentAspect::LocalEnvironmentAspect(Target *target, bool includeBuildEnvironment) -{ - setIsLocal(true); - addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {}); - - addSupportedBaseEnvironment(Tr::tr("System Environment"), [] { - return Environment::systemEnvironment(); - }); - - if (includeBuildEnvironment) { - addPreferredBaseEnvironment(Tr::tr("Build Environment"), [target] { - Environment env; - if (BuildConfiguration *bc = target->activeBuildConfiguration()) { - env = bc->environment(); - } else { // Fallback for targets without buildconfigurations: - env = target->kit()->buildEnvironment(); - } - return env; - }); - - connect(target, - &Target::activeBuildConfigurationChanged, - this, - &EnvironmentAspect::environmentChanged); - connect(target, - &Target::buildEnvironmentChanged, - this, - &EnvironmentAspect::environmentChanged); - } -} - -} // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/localenvironmentaspect.h b/src/plugins/projectexplorer/localenvironmentaspect.h deleted file mode 100644 index ffe2556947e..00000000000 --- a/src/plugins/projectexplorer/localenvironmentaspect.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "environmentaspect.h" - -namespace ProjectExplorer { - -class PROJECTEXPLORER_EXPORT LocalEnvironmentAspect : public EnvironmentAspect -{ - Q_OBJECT - -public: - explicit LocalEnvironmentAspect(Target *parent, bool includeBuildEnvironment = true); -}; - -} // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 23870334857..e938165e97b 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -92,7 +92,6 @@ Project { "ldparser.cpp", "ldparser.h", "lldparser.cpp", "lldparser.h", "linuxiccparser.cpp", "linuxiccparser.h", - "localenvironmentaspect.cpp", "localenvironmentaspect.h", "makestep.cpp", "makestep.h", "miniprojecttargetselector.cpp", "miniprojecttargetselector.h", "msvcparser.cpp", "msvcparser.h", diff --git a/src/plugins/python/pythonplugin.cpp b/src/plugins/python/pythonplugin.cpp index 67857aec236..3cbbe817f9d 100644 --- a/src/plugins/python/pythonplugin.cpp +++ b/src/plugins/python/pythonplugin.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include diff --git a/src/plugins/python/pythonrunconfiguration.cpp b/src/plugins/python/pythonrunconfiguration.cpp index 537da98125f..e7c5b4dee14 100644 --- a/src/plugins/python/pythonrunconfiguration.cpp +++ b/src/plugins/python/pythonrunconfiguration.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -190,7 +189,8 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Id id) scriptAspect->setLabelText(Tr::tr("Script:")); scriptAspect->setDisplayStyle(StringAspect::LabelDisplay); - addAspect(target); + auto envAspect = addAspect(); + envAspect->setSupportForBuildEnvironment(target); auto argumentsAspect = addAspect(macroExpander());