Nim: Use aspects more directly in NimRunConfiguration

Change-Id: I4120f86d36ece183c95325ccea33cb66778753db
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2023-07-10 09:28:29 +02:00
parent 9e84b09e99
commit 27d783fd1e

View File

@@ -26,19 +26,13 @@ public:
NimRunConfiguration(Target *target, Utils::Id id) NimRunConfiguration(Target *target, Utils::Id id)
: RunConfiguration(target, id) : RunConfiguration(target, id)
{ {
auto envAspect = addAspect<EnvironmentAspect>(); environment.setSupportForBuildEnvironment(target);
envAspect->setSupportForBuildEnvironment(target);
auto exeAspect = addAspect<ExecutableAspect>(); executable.setDeviceSelector(target, ExecutableAspect::RunDevice);
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
auto argsAspect = addAspect<ArgumentsAspect>(); arguments.setMacroExpander(macroExpander());
argsAspect->setMacroExpander(macroExpander());
auto workingDirAspect = addAspect<WorkingDirectoryAspect>(); workingDir.setMacroExpander(macroExpander());
workingDirAspect->setMacroExpander(macroExpander());
addAspect<TerminalAspect>();
setDisplayName(Tr::tr("Current Build Target")); setDisplayName(Tr::tr("Current Build Target"));
setDefaultDisplayName(Tr::tr("Current Build Target")); setDefaultDisplayName(Tr::tr("Current Build Target"));
@@ -47,15 +41,21 @@ public:
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(target->activeBuildConfiguration()); auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(target->activeBuildConfiguration());
QTC_ASSERT(buildConfiguration, return); QTC_ASSERT(buildConfiguration, return);
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo(); const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath())); executable.setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath(); const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory)); workingDir.setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
}); });
// Connect target signals // Connect target signals
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update); connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update(); update();
} }
EnvironmentAspect environment{this};
ExecutableAspect executable{this};
ArgumentsAspect arguments{this};
WorkingDirectoryAspect workingDir{this};
TerminalAspect terminal{this};
}; };
// NimRunConfigurationFactory // NimRunConfigurationFactory