forked from qt-creator/qt-creator
IRunConfiguration: Remove BuildTargetInfo from the RC factory APIs
Change-Id: I1d77d22a1c1ce1cbcfca8af7855ae7b935ac1c2c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -48,27 +48,24 @@ BareMetalRunConfigurationFactory::BareMetalRunConfigurationFactory(QObject *pare
|
|||||||
setSupportedTargetDeviceTypes({BareMetal::Constants::BareMetalOsType});
|
setSupportedTargetDeviceTypes({BareMetal::Constants::BareMetalOsType});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
QList<RunConfigurationCreationInfo> BareMetalRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
BareMetalRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode) const
|
|
||||||
{
|
{
|
||||||
return Utils::transform(parent->applicationTargets().list, [](BuildTargetInfo bti) {
|
Q_UNUSED(mode);
|
||||||
bti.displayName = tr("%1 (on GDB server or hardware debugger)")
|
return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) {
|
||||||
.arg(QFileInfo(bti.targetName).fileName());
|
return convert(tr("%1 (on GDB server or hardware debugger)").arg(QFileInfo(bti.targetName).fileName()),
|
||||||
bti.targetName = bti.projectFilePath.toString() + '/' + bti.targetName;
|
bti.projectFilePath.toString() + '/' + bti.targetName);
|
||||||
return bti;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// BareMetalCustomRunConfigurationFactory
|
// BareMetalCustomRunConfigurationFactory
|
||||||
|
|
||||||
BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory(QObject *parent) :
|
BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory(QObject *parent) :
|
||||||
IRunConfigurationFactory(parent)
|
FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable (on GDB server or hardware debugger)"),
|
||||||
|
parent)
|
||||||
{
|
{
|
||||||
setObjectName("BareMetalCustomRunConfigurationFactory");
|
setObjectName("BareMetalCustomRunConfigurationFactory");
|
||||||
registerRunConfiguration<BareMetalCustomRunConfiguration>("BareMetal.CustomRunConfig");
|
registerRunConfiguration<BareMetalCustomRunConfiguration>("BareMetal.CustomRunConfig");
|
||||||
setSupportedTargetDeviceTypes({BareMetal::Constants::BareMetalOsType});
|
setSupportedTargetDeviceTypes({BareMetal::Constants::BareMetalOsType});
|
||||||
addFixedBuildTarget(BareMetalCustomRunConfiguration::tr
|
|
||||||
("Custom Executable (on GDB server or hardware debugger)"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -35,18 +35,18 @@ class BareMetalRunConfigurationFactory : public ProjectExplorer::IRunConfigurati
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BareMetalRunConfigurationFactory(QObject *parent = 0);
|
explicit BareMetalRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class BareMetalCustomRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
|
class BareMetalCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BareMetalCustomRunConfigurationFactory(QObject *parent = 0);
|
explicit BareMetalCustomRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -241,17 +241,11 @@ CMakeRunConfigurationFactory::CMakeRunConfigurationFactory(QObject *parent) :
|
|||||||
addSupportedProjectType(CMakeProjectManager::Constants::CMAKEPROJECT_ID);
|
addSupportedProjectType(CMakeProjectManager::Constants::CMAKEPROJECT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
QList<RunConfigurationCreationInfo> CMakeRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
CMakeRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode) const
|
|
||||||
{
|
{
|
||||||
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
|
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
|
||||||
const QStringList titles = project->buildTargetTitles(true);
|
const QStringList titles = project->buildTargetTitles(true);
|
||||||
return Utils::transform(titles, [](const QString &title) {
|
return Utils::transform(titles, [this](const QString &title) { return convert(title, title); });
|
||||||
BuildTargetInfo bti;
|
|
||||||
bti.targetName = title;
|
|
||||||
bti.displayName = title;
|
|
||||||
return bti;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CMakeRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
bool CMakeRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ class CMakeRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFa
|
|||||||
public:
|
public:
|
||||||
explicit CMakeRunConfigurationFactory(QObject *parent = 0);
|
explicit CMakeRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -51,22 +51,25 @@ IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent)
|
|||||||
addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
|
addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<RunConfigurationCreationInfo>
|
||||||
|
IosRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
||||||
|
{
|
||||||
|
auto project = static_cast<QmakeProject *>(parent->project());
|
||||||
|
return Utils::transform(project->buildTargets(mode, {ProjectType::ApplicationTemplate,
|
||||||
|
ProjectType::SharedLibraryTemplate}),
|
||||||
|
[this](const BuildTargetInfo &ti) { return convert(ti); });
|
||||||
|
}
|
||||||
|
|
||||||
bool IosRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
bool IosRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
||||||
{
|
{
|
||||||
const QList<BuildTargetInfo> buildTargets = availableBuildTargets(parent, UserCreate);
|
auto project = static_cast<QmakeProject *>(parent->project());
|
||||||
|
const QList<BuildTargetInfo> buildTargets = project->buildTargets(UserCreate, {ProjectType::ApplicationTemplate,
|
||||||
|
ProjectType::SharedLibraryTemplate});
|
||||||
return Utils::contains(buildTargets, [buildTarget](const BuildTargetInfo &bti) {
|
return Utils::contains(buildTargets, [buildTarget](const BuildTargetInfo &bti) {
|
||||||
return bti.targetName == buildTarget;
|
return bti.targetName == buildTarget;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
|
||||||
IosRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
|
||||||
{
|
|
||||||
auto project = static_cast<QmakeProject *>(parent->project());
|
|
||||||
return project->buildTargets(mode, {ProjectType::ApplicationTemplate,
|
|
||||||
ProjectType::SharedLibraryTemplate});
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IosRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const
|
bool IosRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const
|
||||||
{
|
{
|
||||||
auto iosRc = qobject_cast<IosRunConfiguration *>(rc);
|
auto iosRc = qobject_cast<IosRunConfiguration *>(rc);
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ class IosRunConfigurationFactory : public QmakeProjectManager::QmakeRunConfigura
|
|||||||
public:
|
public:
|
||||||
explicit IosRunConfigurationFactory(QObject *parent = 0);
|
explicit IosRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
|
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -132,11 +132,10 @@ void NimRunConfiguration::setActiveBuildConfiguration(NimBuildConfiguration *act
|
|||||||
|
|
||||||
// NimRunConfigurationFactory
|
// NimRunConfigurationFactory
|
||||||
|
|
||||||
NimRunConfigurationFactory::NimRunConfigurationFactory()
|
NimRunConfigurationFactory::NimRunConfigurationFactory() : FixedRunConfigurationFactory("-TempRunConf")
|
||||||
{
|
{
|
||||||
registerRunConfiguration<NimRunConfiguration>(Constants::C_NIMRUNCONFIGURATION_ID);
|
registerRunConfiguration<NimRunConfiguration>(Constants::C_NIMRUNCONFIGURATION_ID);
|
||||||
addSupportedProjectType(Constants::C_NIMPROJECT_ID);
|
addSupportedProjectType(Constants::C_NIMPROJECT_ID);
|
||||||
addFixedBuildTarget("-TempRunConf");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ private:
|
|||||||
ProjectExplorer::LocalEnvironmentAspect* m_localEnvironmentAspect;
|
ProjectExplorer::LocalEnvironmentAspect* m_localEnvironmentAspect;
|
||||||
};
|
};
|
||||||
|
|
||||||
class NimRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
|
class NimRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NimRunConfigurationFactory();
|
NimRunConfigurationFactory();
|
||||||
|
|||||||
@@ -302,11 +302,10 @@ Abi CustomExecutableRunConfiguration::abi() const
|
|||||||
// Factory
|
// Factory
|
||||||
|
|
||||||
CustomExecutableRunConfigurationFactory::CustomExecutableRunConfigurationFactory(QObject *parent) :
|
CustomExecutableRunConfigurationFactory::CustomExecutableRunConfigurationFactory(QObject *parent) :
|
||||||
IRunConfigurationFactory(parent)
|
FixedRunConfigurationFactory(tr("Custom Executable"), parent)
|
||||||
{
|
{
|
||||||
setObjectName("CustomExecutableRunConfigurationFactory");
|
setObjectName("CustomExecutableRunConfigurationFactory");
|
||||||
registerRunConfiguration<CustomExecutableRunConfiguration>(CUSTOM_EXECUTABLE_ID);
|
registerRunConfiguration<CustomExecutableRunConfiguration>(CUSTOM_EXECUTABLE_ID);
|
||||||
addFixedBuildTarget(tr("Custom Executable"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
@@ -84,12 +84,12 @@ private:
|
|||||||
CustomExecutableDialog *m_dialog = nullptr;
|
CustomExecutableDialog *m_dialog = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CustomExecutableRunConfigurationFactory : public IRunConfigurationFactory
|
class CustomExecutableRunConfigurationFactory : public FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CustomExecutableRunConfigurationFactory(QObject *parent = 0);
|
explicit CustomExecutableRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
@@ -449,40 +449,13 @@ const QList<IRunConfigurationFactory *> IRunConfigurationFactory::allRunConfigur
|
|||||||
}
|
}
|
||||||
|
|
||||||
QList<RunConfigurationCreationInfo>
|
QList<RunConfigurationCreationInfo>
|
||||||
IRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
IRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
{
|
{
|
||||||
if (!canHandle(parent))
|
Q_UNUSED(mode);
|
||||||
return {};
|
return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &ti) {
|
||||||
|
return RunConfigurationCreationInfo(this, m_runConfigBaseId, ti.targetName, ti.displayName);
|
||||||
QList<RunConfigurationCreationInfo> result;
|
});
|
||||||
|
|
||||||
const QList<BuildTargetInfo> buildTargets = m_fixedBuildTargets.isEmpty()
|
|
||||||
? availableBuildTargets(parent, mode)
|
|
||||||
: m_fixedBuildTargets;
|
|
||||||
|
|
||||||
for (const BuildTargetInfo &bt : buildTargets) {
|
|
||||||
QString displayName = bt.displayName;
|
|
||||||
if (displayName.isEmpty())
|
|
||||||
displayName = QFileInfo(bt.targetName).completeBaseName();
|
|
||||||
if (displayName.isEmpty())
|
|
||||||
displayName = bt.targetName;
|
|
||||||
if (!m_displayNamePattern.isEmpty()) {
|
|
||||||
displayName = m_displayNamePattern.contains("%1")
|
|
||||||
? m_displayNamePattern.arg(bt.targetName)
|
|
||||||
: m_displayNamePattern;
|
|
||||||
}
|
}
|
||||||
RunConfigurationCreationInfo rci(this, m_runConfigBaseId, bt.targetName, displayName);
|
|
||||||
result.append(rci);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<BuildTargetInfo> IRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode) const
|
|
||||||
{
|
|
||||||
return parent->applicationTargets().list;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Specifies a list of device types for which this RunConfigurationFactory
|
Specifies a list of device types for which this RunConfigurationFactory
|
||||||
@@ -500,29 +473,16 @@ void IRunConfigurationFactory::addSupportedProjectType(Core::Id id)
|
|||||||
m_supportedProjectTypes.append(id);
|
m_supportedProjectTypes.append(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRunConfigurationFactory::addFixedBuildTarget(const QString &displayName)
|
RunConfigurationCreationInfo
|
||||||
|
IRunConfigurationFactory::convert(const BuildTargetInfo &ti) const
|
||||||
{
|
{
|
||||||
BuildTargetInfo bt;
|
return convert(ti.displayName, ti.targetName);
|
||||||
bt.displayName = displayName;
|
|
||||||
m_fixedBuildTargets.append(bt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
RunConfigurationCreationInfo
|
||||||
\internal
|
IRunConfigurationFactory::convert(const QString &displayName, const QString &targetName) const
|
||||||
|
|
||||||
Convenience function to specify a pattern for the name that is displayed for this
|
|
||||||
RunConfiguration.
|
|
||||||
|
|
||||||
A fixed string is used as-is, a "%1" is replaced by the BuildTargetInfo's targetName.
|
|
||||||
|
|
||||||
This simplistic patterns covers all currently existing uses, if anything more
|
|
||||||
complex is required, the display name can be set directly when creating the
|
|
||||||
BuildTargetInfo objects as part of the RunConfiguration's availableBuildTarget()
|
|
||||||
implementation.
|
|
||||||
*/
|
|
||||||
void IRunConfigurationFactory::setDisplayNamePattern(const QString &pattern)
|
|
||||||
{
|
{
|
||||||
m_displayNamePattern = pattern;
|
return RunConfigurationCreationInfo(this, runConfigurationBaseId(), targetName, displayName);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IRunConfigurationFactory::canHandle(Target *target) const
|
bool IRunConfigurationFactory::canHandle(Target *target) const
|
||||||
@@ -639,10 +599,25 @@ QList<IRunConfigurationFactory *> IRunConfigurationFactory::find(Target *parent)
|
|||||||
{
|
{
|
||||||
return Utils::filtered(g_runConfigurationFactories,
|
return Utils::filtered(g_runConfigurationFactories,
|
||||||
[&parent](IRunConfigurationFactory *factory) {
|
[&parent](IRunConfigurationFactory *factory) {
|
||||||
return !factory->availableCreators(parent).isEmpty();
|
return factory->canHandle(parent) && !factory->availableCreators(parent).isEmpty();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FixedRunConfigurationFactory::FixedRunConfigurationFactory(const QString &displayName,
|
||||||
|
QObject *parent) :
|
||||||
|
IRunConfigurationFactory(parent), m_fixedBuildTarget(displayName)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
QList<RunConfigurationCreationInfo>
|
||||||
|
FixedRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(mode);
|
||||||
|
if (!canHandle(parent))
|
||||||
|
return {};
|
||||||
|
|
||||||
|
return {RunConfigurationCreationInfo(this, runConfigurationBaseId(), QString(), m_fixedBuildTarget)};
|
||||||
|
}
|
||||||
|
|
||||||
using WorkerFactories = std::vector<RunControl::WorkerFactory>;
|
using WorkerFactories = std::vector<RunControl::WorkerFactory>;
|
||||||
|
|
||||||
static WorkerFactories &theWorkerFactories()
|
static WorkerFactories &theWorkerFactories()
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ public:
|
|||||||
|
|
||||||
enum CreationMode {UserCreate, AutoCreate};
|
enum CreationMode {UserCreate, AutoCreate};
|
||||||
|
|
||||||
QList<RunConfigurationCreationInfo> availableCreators(Target *parent,
|
virtual QList<RunConfigurationCreationInfo> availableCreators(Target *parent,
|
||||||
CreationMode mode = UserCreate) const;
|
CreationMode mode = UserCreate) const;
|
||||||
|
|
||||||
virtual bool canHandle(Target *target) const;
|
virtual bool canHandle(Target *target) const;
|
||||||
@@ -318,8 +318,6 @@ public:
|
|||||||
static QList<IRunConfigurationFactory *> find(Target *parent);
|
static QList<IRunConfigurationFactory *> find(Target *parent);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QList<BuildTargetInfo> availableBuildTargets(Target *parent, CreationMode mode = UserCreate) const;
|
|
||||||
|
|
||||||
virtual bool canCreateHelper(Target *parent, const QString &buildTarget) const;
|
virtual bool canCreateHelper(Target *parent, const QString &buildTarget) const;
|
||||||
|
|
||||||
using RunConfigurationCreator = std::function<RunConfiguration *(Target *)>;
|
using RunConfigurationCreator = std::function<RunConfiguration *(Target *)>;
|
||||||
@@ -333,16 +331,32 @@ protected:
|
|||||||
|
|
||||||
void addSupportedProjectType(Core::Id id);
|
void addSupportedProjectType(Core::Id id);
|
||||||
void setSupportedTargetDeviceTypes(const QList<Core::Id> &ids);
|
void setSupportedTargetDeviceTypes(const QList<Core::Id> &ids);
|
||||||
void addFixedBuildTarget(const QString &displayName);
|
|
||||||
void setDisplayNamePattern(const QString &pattern);
|
void setDisplayNamePattern(const QString &pattern);
|
||||||
|
|
||||||
|
Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; }
|
||||||
|
|
||||||
|
RunConfigurationCreationInfo convert(const BuildTargetInfo &ti) const;
|
||||||
|
RunConfigurationCreationInfo convert(const QString &displayName, const QString &targetName = QString()) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RunConfigurationCreator m_creator;
|
RunConfigurationCreator m_creator;
|
||||||
Core::Id m_runConfigBaseId;
|
Core::Id m_runConfigBaseId;
|
||||||
QList<Core::Id> m_supportedProjectTypes;
|
QList<Core::Id> m_supportedProjectTypes;
|
||||||
QList<Core::Id> m_supportedTargetDeviceTypes;
|
QList<Core::Id> m_supportedTargetDeviceTypes;
|
||||||
QList<BuildTargetInfo> m_fixedBuildTargets;
|
};
|
||||||
QString m_displayNamePattern;
|
|
||||||
|
class PROJECTEXPLORER_EXPORT FixedRunConfigurationFactory : public IRunConfigurationFactory
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit FixedRunConfigurationFactory(const QString &displayName, QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QList<RunConfigurationCreationInfo> availableCreators(Target *parent,
|
||||||
|
CreationMode mode = UserCreate) const override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
const QString m_fixedBuildTarget;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PROJECTEXPLORER_EXPORT RunConfigWidget : public QWidget
|
class PROJECTEXPLORER_EXPORT RunConfigWidget : public QWidget
|
||||||
|
|||||||
@@ -271,13 +271,12 @@ public:
|
|||||||
addSupportedProjectType(PythonProjectId);
|
addSupportedProjectType(PythonProjectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo> availableBuildTargets(Target *parent, CreationMode mode) const override
|
QList<RunConfigurationCreationInfo> availableCreators(Target *parent,
|
||||||
|
CreationMode mode) const override
|
||||||
{
|
{
|
||||||
Q_UNUSED(mode);
|
Q_UNUSED(mode);
|
||||||
return Utils::transform(parent->project()->files(Project::AllFiles), [](const FileName &fn) {
|
return Utils::transform(parent->project()->files(Project::AllFiles),[this](const FileName &fn) {
|
||||||
BuildTargetInfo bti;
|
return convert(fn.toString(), fn.toString());
|
||||||
bti.targetName = fn.toString();
|
|
||||||
return bti;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -384,7 +384,8 @@ bool QbsRunConfigurationFactory::canCreateHelper(Target *parent, const QString &
|
|||||||
return findProduct(project->qbsProjectData(), product).isValid();
|
return findProduct(project->qbsProjectData(), product).isValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo> QbsRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
QList<RunConfigurationCreationInfo>
|
||||||
|
QbsRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QList<qbs::ProductData> products;
|
QList<qbs::ProductData> products;
|
||||||
|
|
||||||
@@ -406,12 +407,10 @@ QList<BuildTargetInfo> QbsRunConfigurationFactory::availableBuildTargets(Target
|
|||||||
Utils::erase(products, std::not1(hasQtcRunnable));
|
Utils::erase(products, std::not1(hasQtcRunnable));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Utils::transform(products, [project](const qbs::ProductData &product) {
|
return Utils::transform(products, [this, project](const qbs::ProductData &product) {
|
||||||
QString displayName = QbsProject::productDisplayName(project->qbsProject(), product);
|
const QString displayName = QbsProject::productDisplayName(project->qbsProject(), product);
|
||||||
BuildTargetInfo bti;
|
const QString targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName;
|
||||||
bti.targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName;
|
return convert(displayName, targetName);
|
||||||
bti.displayName = displayName;
|
|
||||||
return bti;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,8 +118,8 @@ public:
|
|||||||
|
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -56,11 +56,12 @@ QmakeAndroidRunConfigurationFactory::QmakeAndroidRunConfigurationFactory(QObject
|
|||||||
setSupportedTargetDeviceTypes({Android::Constants::ANDROID_DEVICE_TYPE});
|
setSupportedTargetDeviceTypes({Android::Constants::ANDROID_DEVICE_TYPE});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
QList<RunConfigurationCreationInfo> QmakeAndroidRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
QmakeAndroidRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
|
||||||
{
|
{
|
||||||
auto project = static_cast<QmakeProject *>(parent->project());
|
auto project = static_cast<QmakeProject *>(parent->project());
|
||||||
return project->buildTargets(mode, {ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate});
|
return Utils::transform(project->buildTargets(mode, {ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate}),
|
||||||
|
[this](const BuildTargetInfo &ti) { return convert(ti); });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ class QmakeAndroidRunConfigurationFactory : public ProjectExplorer::IRunConfigur
|
|||||||
public:
|
public:
|
||||||
explicit QmakeAndroidRunConfigurationFactory(QObject *parent = nullptr);
|
explicit QmakeAndroidRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -443,11 +443,11 @@ bool DesktopQmakeRunConfigurationFactory::canCreateHelper(Target *parent, const
|
|||||||
return project->hasApplicationProFile(Utils::FileName::fromString(buildTarget));
|
return project->hasApplicationProFile(Utils::FileName::fromString(buildTarget));
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
QList<RunConfigurationCreationInfo>
|
||||||
DesktopQmakeRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
DesktopQmakeRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
||||||
return project->buildTargets(mode);
|
return Utils::transform(project->buildTargets(mode), [this](const BuildTargetInfo &ti) { return convert(ti); });
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DesktopQmakeRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const
|
bool DesktopQmakeRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const
|
||||||
|
|||||||
@@ -140,8 +140,8 @@ public:
|
|||||||
|
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
|
|
||||||
bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const override;
|
bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class QMAKEPROJECTMANAGER_EXPORT QmakeRunConfigurationFactory : public ProjectEx
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit QmakeRunConfigurationFactory(QObject *parent = 0);
|
explicit QmakeRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
virtual bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const = 0;
|
virtual bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ namespace QmlProjectManager {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
QmlProjectRunConfigurationFactory::QmlProjectRunConfigurationFactory(QObject *parent) :
|
QmlProjectRunConfigurationFactory::QmlProjectRunConfigurationFactory(QObject *parent) :
|
||||||
ProjectExplorer::IRunConfigurationFactory(parent)
|
ProjectExplorer::FixedRunConfigurationFactory(tr("QML Scene"), parent)
|
||||||
{
|
{
|
||||||
setObjectName("QmlProjectRunConfigurationFactory");
|
setObjectName("QmlProjectRunConfigurationFactory");
|
||||||
registerRunConfiguration<QmlProjectRunConfiguration>(Constants::QML_SCENE_RC_ID);
|
registerRunConfiguration<QmlProjectRunConfiguration>(Constants::QML_SCENE_RC_ID);
|
||||||
addSupportedProjectType(QmlProjectManager::Constants::QML_PROJECT_ID);
|
addSupportedProjectType(QmlProjectManager::Constants::QML_PROJECT_ID);
|
||||||
addFixedBuildTarget(tr("QML Scene"));
|
setSupportedTargetDeviceTypes({ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE});
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -30,12 +30,12 @@
|
|||||||
namespace QmlProjectManager {
|
namespace QmlProjectManager {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class QmlProjectRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
|
class QmlProjectRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit QmlProjectRunConfigurationFactory(QObject *parent = 0);
|
explicit QmlProjectRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -45,14 +45,11 @@ QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) :
|
|||||||
setSupportedTargetDeviceTypes({Constants::QNX_QNX_OS_TYPE});
|
setSupportedTargetDeviceTypes({Constants::QNX_QNX_OS_TYPE});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<RunConfigurationCreationInfo> QnxRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
QnxRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
|
||||||
{
|
{
|
||||||
auto project = qobject_cast<QmakeProjectManager::QmakeProject *>(parent->project());
|
auto project = qobject_cast<QmakeProjectManager::QmakeProject *>(parent->project());
|
||||||
const QList<BuildTargetInfo> buildTargets = project->buildTargets(mode);
|
return Utils::transform(project->buildTargets(mode), [this](const BuildTargetInfo &bti) {
|
||||||
return Utils::transform(buildTargets, [](BuildTargetInfo bti) {
|
return convert(tr("%1 on QNX Device").arg(QFileInfo(bti.targetName).completeBaseName()));
|
||||||
bti.displayName = tr("%1 on QNX Device").arg(QFileInfo(bti.targetName).completeBaseName());
|
|
||||||
return bti;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ class QnxRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFact
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit QnxRunConfigurationFactory(QObject *parent = 0);
|
explicit QnxRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
|
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory(QObject *
|
|||||||
setObjectName("RemoteLinuxRunConfigurationFactory");
|
setObjectName("RemoteLinuxRunConfigurationFactory");
|
||||||
registerRunConfiguration<RemoteLinuxRunConfiguration>(RemoteLinuxRunConfiguration::IdPrefix);
|
registerRunConfiguration<RemoteLinuxRunConfiguration>(RemoteLinuxRunConfiguration::IdPrefix);
|
||||||
setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType});
|
setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType});
|
||||||
setDisplayNamePattern(tr("%1 (on Remote Generic Linux Host)"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RemoteLinuxRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
bool RemoteLinuxRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
||||||
@@ -54,16 +53,25 @@ bool RemoteLinuxRunConfigurationFactory::canCreateHelper(Target *parent, const Q
|
|||||||
return parent->applicationTargets().hasTarget(buildTarget);
|
return parent->applicationTargets().hasTarget(buildTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<RunConfigurationCreationInfo>
|
||||||
|
RemoteLinuxRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(mode);
|
||||||
|
return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) {
|
||||||
|
return convert(tr("%1 (on Remote Generic Linux Host)").arg(bti.displayName), bti.targetName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// RemoteLinuxCustomRunConfigurationFactory
|
// RemoteLinuxCustomRunConfigurationFactory
|
||||||
|
|
||||||
RemoteLinuxCustomRunConfigurationFactory::RemoteLinuxCustomRunConfigurationFactory(QObject *parent)
|
RemoteLinuxCustomRunConfigurationFactory::RemoteLinuxCustomRunConfigurationFactory(QObject *parent)
|
||||||
: IRunConfigurationFactory(parent)
|
: FixedRunConfigurationFactory(RemoteLinuxCustomRunConfiguration::runConfigDefaultDisplayName(), parent)
|
||||||
{
|
{
|
||||||
setObjectName("RemoteLinuxCustomRunConfiguration");
|
setObjectName("RemoteLinuxCustomRunConfiguration");
|
||||||
registerRunConfiguration<RemoteLinuxCustomRunConfiguration>
|
registerRunConfiguration<RemoteLinuxCustomRunConfiguration>
|
||||||
(RemoteLinuxCustomRunConfiguration::runConfigId());
|
(RemoteLinuxCustomRunConfiguration::runConfigId());
|
||||||
setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType});
|
setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType});
|
||||||
addFixedBuildTarget(RemoteLinuxCustomRunConfiguration::runConfigDefaultDisplayName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -35,17 +35,19 @@ class RemoteLinuxRunConfigurationFactory : public ProjectExplorer::IRunConfigura
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RemoteLinuxRunConfigurationFactory(QObject *parent = 0);
|
explicit RemoteLinuxRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||||
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class RemoteLinuxCustomRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
|
class RemoteLinuxCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RemoteLinuxCustomRunConfigurationFactory(QObject *parent = 0);
|
explicit RemoteLinuxCustomRunConfigurationFactory(QObject *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -50,14 +50,12 @@ WinRtRunConfigurationFactory::WinRtRunConfigurationFactory()
|
|||||||
Constants::WINRT_DEVICE_TYPE_EMULATOR});
|
Constants::WINRT_DEVICE_TYPE_EMULATOR});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildTargetInfo>
|
QList<RunConfigurationCreationInfo> WinRtRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const
|
||||||
WinRtRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
|
||||||
{
|
{
|
||||||
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
||||||
const QList<BuildTargetInfo> buildTargets = project->buildTargets(mode);
|
const QList<BuildTargetInfo> buildTargets = project->buildTargets(mode);
|
||||||
return Utils::transform(buildTargets, [](BuildTargetInfo bti) {
|
return Utils::transform(project->buildTargets(mode), [this](const BuildTargetInfo &bti) {
|
||||||
bti.displayName = tr("Run App Package");
|
return convert(tr("Run App Package"), bti.targetName);
|
||||||
return bti;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class WinRtRunConfigurationFactory : public ProjectExplorer::IRunConfigurationF
|
|||||||
public:
|
public:
|
||||||
WinRtRunConfigurationFactory();
|
WinRtRunConfigurationFactory();
|
||||||
|
|
||||||
QList<ProjectExplorer::BuildTargetInfo>
|
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||||
availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user