forked from qt-creator/qt-creator
ProjectExplorer: Merge LocalEnvironmentAspect into EnvironmentAspect
This still has some not quite orthogonal features in one blob function, but at least it's not a separate class anymore. A step forward to remote support in places where it could make sense. Change-Id: Ia02003e4340eb2b5ee92bd48c00006a487527828 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -9,7 +9,6 @@
|
|||||||
#include "haskellsettings.h"
|
#include "haskellsettings.h"
|
||||||
|
|
||||||
#include <projectexplorer/buildconfiguration.h>
|
#include <projectexplorer/buildconfiguration.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/runcontrol.h>
|
#include <projectexplorer/runcontrol.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
@@ -35,7 +34,8 @@ HaskellExecutableAspect::HaskellExecutableAspect()
|
|||||||
HaskellRunConfiguration::HaskellRunConfiguration(Target *target, Utils::Id id)
|
HaskellRunConfiguration::HaskellRunConfiguration(Target *target, Utils::Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
addAspect<HaskellExecutableAspect>();
|
addAspect<HaskellExecutableAspect>();
|
||||||
addAspect<ArgumentsAspect>(macroExpander());
|
addAspect<ArgumentsAspect>(macroExpander());
|
||||||
@@ -67,7 +67,7 @@ Runnable HaskellRunConfiguration::runnable() const
|
|||||||
args << "--" << arguments;
|
args << "--" << arguments;
|
||||||
|
|
||||||
r.workingDirectory = projectDirectory;
|
r.workingDirectory = projectDirectory;
|
||||||
r.environment = aspect<LocalEnvironmentAspect>()->environment();
|
r.environment = aspect<EnvironmentAspect>()->environment();
|
||||||
r.command = {r.environment.searchInPath(settings().stackPath().path()), args};
|
r.command = {r.environment.searchInPath(settings().stackPath().path()), args};
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include <projectexplorer/buildsystem.h>
|
#include <projectexplorer/buildsystem.h>
|
||||||
#include <projectexplorer/desktoprunconfiguration.h>
|
#include <projectexplorer/desktoprunconfiguration.h>
|
||||||
#include <projectexplorer/environmentaspect.h>
|
#include <projectexplorer/environmentaspect.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
@@ -24,7 +23,8 @@ namespace Internal {
|
|||||||
MesonRunConfiguration::MesonRunConfiguration(Target *target, Utils::Id id)
|
MesonRunConfiguration::MesonRunConfiguration(Target *target, Utils::Id id)
|
||||||
: RunConfiguration{target, id}
|
: RunConfiguration{target, id}
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||||
addAspect<ArgumentsAspect>(macroExpander());
|
addAspect<ArgumentsAspect>(macroExpander());
|
||||||
@@ -65,7 +65,7 @@ void MesonRunConfiguration::updateTargetInformation()
|
|||||||
aspect<TerminalAspect>()->setUseTerminalHint(bti.usesTerminal);
|
aspect<TerminalAspect>()->setUseTerminalHint(bti.usesTerminal);
|
||||||
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
||||||
emit aspect<LocalEnvironmentAspect>()->environmentChanged();
|
emit aspect<EnvironmentAspect>()->environmentChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
MesonRunConfigurationFactory::MesonRunConfigurationFactory()
|
MesonRunConfigurationFactory::MesonRunConfigurationFactory()
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#include "nimconstants.h"
|
#include "nimconstants.h"
|
||||||
#include "nimtr.h"
|
#include "nimtr.h"
|
||||||
|
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
@@ -27,7 +26,9 @@ public:
|
|||||||
NimbleRunConfiguration(Target *target, Utils::Id id)
|
NimbleRunConfiguration(Target *target, Utils::Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||||
addAspect<ArgumentsAspect>(macroExpander());
|
addAspect<ArgumentsAspect>(macroExpander());
|
||||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include "../nimtr.h"
|
#include "../nimtr.h"
|
||||||
|
|
||||||
#include <projectexplorer/buildsystem.h>
|
#include <projectexplorer/buildsystem.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
@@ -27,7 +26,9 @@ public:
|
|||||||
NimRunConfiguration(Target *target, Utils::Id id)
|
NimRunConfiguration(Target *target, Utils::Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||||
addAspect<ArgumentsAspect>(macroExpander());
|
addAspect<ArgumentsAspect>(macroExpander());
|
||||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||||
|
|||||||
@@ -115,7 +115,6 @@ add_qtc_plugin(ProjectExplorer
|
|||||||
ldparser.cpp ldparser.h
|
ldparser.cpp ldparser.h
|
||||||
lldparser.cpp lldparser.h
|
lldparser.cpp lldparser.h
|
||||||
linuxiccparser.cpp linuxiccparser.h
|
linuxiccparser.cpp linuxiccparser.h
|
||||||
localenvironmentaspect.cpp localenvironmentaspect.h
|
|
||||||
makestep.cpp makestep.h
|
makestep.cpp makestep.h
|
||||||
miniprojecttargetselector.cpp miniprojecttargetselector.h
|
miniprojecttargetselector.cpp miniprojecttargetselector.h
|
||||||
msvcparser.cpp msvcparser.h
|
msvcparser.cpp msvcparser.h
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "customexecutablerunconfiguration.h"
|
#include "customexecutablerunconfiguration.h"
|
||||||
|
|
||||||
#include "localenvironmentaspect.h"
|
|
||||||
#include "projectexplorerconstants.h"
|
#include "projectexplorerconstants.h"
|
||||||
#include "projectexplorertr.h"
|
#include "projectexplorertr.h"
|
||||||
#include "runconfigurationaspects.h"
|
#include "runconfigurationaspects.h"
|
||||||
@@ -24,7 +23,8 @@ CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *targe
|
|||||||
CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *target, Id id)
|
CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *target, Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
auto exeAspect = addAspect<ExecutableAspect>(target, ExecutableAspect::HostDevice);
|
auto exeAspect = addAspect<ExecutableAspect>(target, ExecutableAspect::HostDevice);
|
||||||
exeAspect->setSettingsKey("ProjectExplorer.CustomExecutableRunConfiguration.Executable");
|
exeAspect->setSettingsKey("ProjectExplorer.CustomExecutableRunConfiguration.Executable");
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include "desktoprunconfiguration.h"
|
#include "desktoprunconfiguration.h"
|
||||||
|
|
||||||
#include "buildsystem.h"
|
#include "buildsystem.h"
|
||||||
#include "localenvironmentaspect.h"
|
|
||||||
#include "projectexplorerconstants.h"
|
#include "projectexplorerconstants.h"
|
||||||
#include "projectexplorertr.h"
|
#include "projectexplorertr.h"
|
||||||
#include "runconfigurationaspects.h"
|
#include "runconfigurationaspects.h"
|
||||||
@@ -43,7 +42,8 @@ private:
|
|||||||
DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kind)
|
DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kind)
|
||||||
: RunConfiguration(target, id), m_kind(kind)
|
: RunConfiguration(target, id), m_kind(kind)
|
||||||
{
|
{
|
||||||
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||||
addAspect<ArgumentsAspect>(macroExpander());
|
addAspect<ArgumentsAspect>(macroExpander());
|
||||||
@@ -122,7 +122,7 @@ void DesktopRunConfiguration::updateTargetInformation()
|
|||||||
|
|
||||||
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
||||||
emit aspect<LocalEnvironmentAspect>()->environmentChanged();
|
emit aspect<EnvironmentAspect>()->environmentChanged();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,11 @@
|
|||||||
|
|
||||||
#include "environmentaspect.h"
|
#include "environmentaspect.h"
|
||||||
|
|
||||||
|
#include "buildconfiguration.h"
|
||||||
#include "environmentaspectwidget.h"
|
#include "environmentaspectwidget.h"
|
||||||
|
#include "kit.h"
|
||||||
#include "projectexplorertr.h"
|
#include "projectexplorertr.h"
|
||||||
|
#include "target.h"
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
@@ -102,6 +105,27 @@ int EnvironmentAspect::addPreferredBaseEnvironment(const QString &displayName,
|
|||||||
return index;
|
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)
|
void EnvironmentAspect::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
m_base = map.value(QLatin1String(BASE_KEY), -1).toInt();
|
m_base = map.value(QLatin1String(BASE_KEY), -1).toInt();
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public:
|
|||||||
int addPreferredBaseEnvironment(const QString &displayName,
|
int addPreferredBaseEnvironment(const QString &displayName,
|
||||||
const std::function<Utils::Environment()> &getter);
|
const std::function<Utils::Environment()> &getter);
|
||||||
|
|
||||||
|
void setSupportForBuildEnvironment(Target *target);
|
||||||
|
|
||||||
QString currentDisplayName() const;
|
QString currentDisplayName() const;
|
||||||
|
|
||||||
const QStringList displayNames() const;
|
const QStringList displayNames() const;
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -92,7 +92,6 @@ Project {
|
|||||||
"ldparser.cpp", "ldparser.h",
|
"ldparser.cpp", "ldparser.h",
|
||||||
"lldparser.cpp", "lldparser.h",
|
"lldparser.cpp", "lldparser.h",
|
||||||
"linuxiccparser.cpp", "linuxiccparser.h",
|
"linuxiccparser.cpp", "linuxiccparser.h",
|
||||||
"localenvironmentaspect.cpp", "localenvironmentaspect.h",
|
|
||||||
"makestep.cpp", "makestep.h",
|
"makestep.cpp", "makestep.h",
|
||||||
"miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
|
"miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
|
||||||
"msvcparser.cpp", "msvcparser.h",
|
"msvcparser.cpp", "msvcparser.h",
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
#include <projectexplorer/buildtargetinfo.h>
|
#include <projectexplorer/buildtargetinfo.h>
|
||||||
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
|
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
#include <projectexplorer/projectmanager.h>
|
#include <projectexplorer/projectmanager.h>
|
||||||
#include <projectexplorer/taskhub.h>
|
#include <projectexplorer/taskhub.h>
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
#include <projectexplorer/buildsystem.h>
|
#include <projectexplorer/buildsystem.h>
|
||||||
#include <projectexplorer/devicesupport/idevice.h>
|
#include <projectexplorer/devicesupport/idevice.h>
|
||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <projectexplorer/taskhub.h>
|
#include <projectexplorer/taskhub.h>
|
||||||
@@ -190,7 +189,8 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Id id)
|
|||||||
scriptAspect->setLabelText(Tr::tr("Script:"));
|
scriptAspect->setLabelText(Tr::tr("Script:"));
|
||||||
scriptAspect->setDisplayStyle(StringAspect::LabelDisplay);
|
scriptAspect->setDisplayStyle(StringAspect::LabelDisplay);
|
||||||
|
|
||||||
addAspect<LocalEnvironmentAspect>(target);
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
|
envAspect->setSupportForBuildEnvironment(target);
|
||||||
|
|
||||||
auto argumentsAspect = addAspect<ArgumentsAspect>(macroExpander());
|
auto argumentsAspect = addAspect<ArgumentsAspect>(macroExpander());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user