forked from qt-creator/qt-creator
Nim: Move RunConfigurations to .cpp, drop Q_OBJECT
Also remove NimbleRunConfigurationFactory::availableCreators reimplementation that was the same as the base. Change-Id: Ied86c08e77a5bb70d8a16cdeddebd99c4ea5120c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -37,29 +37,38 @@
|
|||||||
|
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
|
|
||||||
using namespace Nim;
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
NimbleRunConfiguration::NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id)
|
namespace Nim {
|
||||||
: RunConfiguration(target, id)
|
|
||||||
|
// NimbleRunConfiguration
|
||||||
|
|
||||||
|
class NimbleRunConfiguration : public RunConfiguration
|
||||||
{
|
{
|
||||||
addAspect<LocalEnvironmentAspect>(target);
|
Q_DECLARE_TR_FUNCTIONS(Nim::NimbleRunConfiguration)
|
||||||
addAspect<ExecutableAspect>();
|
|
||||||
addAspect<ArgumentsAspect>();
|
|
||||||
addAspect<WorkingDirectoryAspect>();
|
|
||||||
addAspect<TerminalAspect>();
|
|
||||||
|
|
||||||
setUpdater([this] {
|
public:
|
||||||
BuildTargetInfo bti = buildTargetInfo();
|
NimbleRunConfiguration(Target *target, Core::Id id)
|
||||||
setDisplayName(bti.displayName);
|
: RunConfiguration(target, id)
|
||||||
setDefaultDisplayName(bti.displayName);
|
{
|
||||||
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
addAspect<LocalEnvironmentAspect>(target);
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
addAspect<ExecutableAspect>();
|
||||||
});
|
addAspect<ArgumentsAspect>();
|
||||||
|
addAspect<WorkingDirectoryAspect>();
|
||||||
|
addAspect<TerminalAspect>();
|
||||||
|
|
||||||
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
setUpdater([this] {
|
||||||
update();
|
BuildTargetInfo bti = buildTargetInfo();
|
||||||
}
|
setDisplayName(bti.displayName);
|
||||||
|
setDefaultDisplayName(bti.displayName);
|
||||||
|
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
||||||
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
NimbleRunConfigurationFactory::NimbleRunConfigurationFactory()
|
NimbleRunConfigurationFactory::NimbleRunConfigurationFactory()
|
||||||
: RunConfigurationFactory()
|
: RunConfigurationFactory()
|
||||||
@@ -69,22 +78,26 @@ NimbleRunConfigurationFactory::NimbleRunConfigurationFactory()
|
|||||||
addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
|
addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<RunConfigurationCreationInfo> NimbleRunConfigurationFactory::availableCreators(Target *parent) const
|
|
||||||
{
|
|
||||||
return RunConfigurationFactory::availableCreators(parent);
|
|
||||||
}
|
|
||||||
|
|
||||||
NimbleTestConfiguration::NimbleTestConfiguration(Target *target, Core::Id id)
|
// NimbleTestConfiguration
|
||||||
: RunConfiguration(target, id)
|
|
||||||
{
|
|
||||||
addAspect<ExecutableAspect>()->setExecutable(Utils::FilePath::fromString(QStandardPaths::findExecutable("nimble")));
|
|
||||||
addAspect<ArgumentsAspect>()->setArguments("test");
|
|
||||||
addAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(project()->projectDirectory());
|
|
||||||
addAspect<TerminalAspect>();
|
|
||||||
|
|
||||||
setDisplayName(tr("Nimble Test"));
|
class NimbleTestConfiguration : public RunConfiguration
|
||||||
setDefaultDisplayName(tr("Nimble Test"));
|
{
|
||||||
}
|
Q_DECLARE_TR_FUNCTIONS(Nim::NimbleTestConfiguration)
|
||||||
|
|
||||||
|
public:
|
||||||
|
NimbleTestConfiguration(ProjectExplorer::Target *target, Core::Id id)
|
||||||
|
: RunConfiguration(target, id)
|
||||||
|
{
|
||||||
|
addAspect<ExecutableAspect>()->setExecutable(Utils::FilePath::fromString(QStandardPaths::findExecutable("nimble")));
|
||||||
|
addAspect<ArgumentsAspect>()->setArguments("test");
|
||||||
|
addAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(project()->projectDirectory());
|
||||||
|
addAspect<TerminalAspect>();
|
||||||
|
|
||||||
|
setDisplayName(tr("Nimble Test"));
|
||||||
|
setDefaultDisplayName(tr("Nimble Test"));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
|
NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
|
||||||
: FixedRunConfigurationFactory(QString())
|
: FixedRunConfigurationFactory(QString())
|
||||||
@@ -92,3 +105,5 @@ NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
|
|||||||
registerRunConfiguration<NimbleTestConfiguration>("Nim.NimbleTestConfiguration");
|
registerRunConfiguration<NimbleTestConfiguration>("Nim.NimbleTestConfiguration");
|
||||||
addSupportedProjectType(Constants::C_NIMBLEPROJECT_ID);
|
addSupportedProjectType(Constants::C_NIMBLEPROJECT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // Nim
|
||||||
|
@@ -29,35 +29,16 @@
|
|||||||
|
|
||||||
namespace Nim {
|
namespace Nim {
|
||||||
|
|
||||||
class NimbleRunConfiguration : public ProjectExplorer::RunConfiguration
|
class NimbleRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
|
|
||||||
};
|
|
||||||
|
|
||||||
class NimbleRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NimbleRunConfigurationFactory();
|
NimbleRunConfigurationFactory();
|
||||||
|
|
||||||
protected:
|
|
||||||
QList<ProjectExplorer::RunConfigurationCreationInfo> availableCreators(ProjectExplorer::Target *parent) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class NimbleTestConfiguration : public ProjectExplorer::RunConfiguration
|
class NimbleTestConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
NimbleTestConfiguration(ProjectExplorer::Target *target, Core::Id id);
|
|
||||||
};
|
|
||||||
|
|
||||||
class NimbleTestConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NimbleTestConfigurationFactory();
|
NimbleTestConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // Nim
|
||||||
|
@@ -41,31 +41,37 @@ using namespace Utils;
|
|||||||
|
|
||||||
namespace Nim {
|
namespace Nim {
|
||||||
|
|
||||||
NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id)
|
class NimRunConfiguration final : public RunConfiguration
|
||||||
: RunConfiguration(target, id)
|
|
||||||
{
|
{
|
||||||
addAspect<LocalEnvironmentAspect>(target);
|
Q_DECLARE_TR_FUNCTIONS(Nim::NimRunConfiguration)
|
||||||
addAspect<ExecutableAspect>();
|
|
||||||
addAspect<ArgumentsAspect>();
|
|
||||||
addAspect<WorkingDirectoryAspect>();
|
|
||||||
addAspect<TerminalAspect>();
|
|
||||||
|
|
||||||
setDisplayName(tr("Current Build Target"));
|
public:
|
||||||
setDefaultDisplayName(tr("Current Build Target"));
|
NimRunConfiguration(Target *target, Core::Id id)
|
||||||
|
: RunConfiguration(target, id)
|
||||||
|
{
|
||||||
|
addAspect<LocalEnvironmentAspect>(target);
|
||||||
|
addAspect<ExecutableAspect>();
|
||||||
|
addAspect<ArgumentsAspect>();
|
||||||
|
addAspect<WorkingDirectoryAspect>();
|
||||||
|
addAspect<TerminalAspect>();
|
||||||
|
|
||||||
setUpdater([this] {
|
setDisplayName(tr("Current Build Target"));
|
||||||
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
|
setDefaultDisplayName(tr("Current Build Target"));
|
||||||
QTC_ASSERT(buildConfiguration, return);
|
|
||||||
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
|
|
||||||
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
|
|
||||||
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
|
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
|
|
||||||
});
|
|
||||||
|
|
||||||
// Connect target signals
|
setUpdater([this] {
|
||||||
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
|
||||||
update();
|
QTC_ASSERT(buildConfiguration, return);
|
||||||
}
|
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
|
||||||
|
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
|
||||||
|
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
|
||||||
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Connect target signals
|
||||||
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// NimRunConfigurationFactory
|
// NimRunConfigurationFactory
|
||||||
|
|
||||||
|
@@ -29,15 +29,7 @@
|
|||||||
|
|
||||||
namespace Nim {
|
namespace Nim {
|
||||||
|
|
||||||
class NimRunConfiguration : public ProjectExplorer::RunConfiguration
|
class NimRunConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
NimRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
|
|
||||||
};
|
|
||||||
|
|
||||||
class NimRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NimRunConfigurationFactory();
|
NimRunConfigurationFactory();
|
||||||
|
Reference in New Issue
Block a user