Make generic make step fit in to the new Project settings.

This commit is contained in:
dt
2009-08-06 18:31:46 +02:00
parent c2ebf585aa
commit 16de2eddaa
2 changed files with 40 additions and 15 deletions

View File

@@ -67,15 +67,16 @@ bool GenericMakeStep::init(const QString &buildConfiguration)
const QString buildDir = vm->resolve(rawBuildDir); const QString buildDir = vm->resolve(rawBuildDir);
setWorkingDirectory(buildConfiguration, buildDir); setWorkingDirectory(buildConfiguration, buildDir);
QString command = value(buildConfiguration, "makeCommand").toString(); setCommand(buildConfiguration, makeCommand(buildConfiguration));
if (command.isEmpty()) { setArguments(buildConfiguration, replacedArguments(buildConfiguration));
if (ProjectExplorer::ToolChain *toolChain = m_pro->toolChain())
command = toolChain->makeCommand();
else
command = QLatin1String("make");
}
setCommand(buildConfiguration, command);
setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration));
return AbstractMakeStep::init(buildConfiguration);
}
QStringList GenericMakeStep::replacedArguments(const QString &buildConfiguration) const
{
Core::VariableManager *vm = Core::VariableManager::instance();
const QStringList targets = value(buildConfiguration, "buildTargets").toStringList(); const QStringList targets = value(buildConfiguration, "buildTargets").toStringList();
QStringList arguments = value(buildConfiguration, "makeArguments").toStringList(); QStringList arguments = value(buildConfiguration, "makeArguments").toStringList();
QStringList replacedArguments; QStringList replacedArguments;
@@ -85,10 +86,19 @@ bool GenericMakeStep::init(const QString &buildConfiguration)
foreach (const QString &arg, targets) { foreach (const QString &arg, targets) {
replacedArguments.append(vm->resolve(arg)); replacedArguments.append(vm->resolve(arg));
} }
setArguments(buildConfiguration, replacedArguments); return replacedArguments;
}
setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration)); QString GenericMakeStep::makeCommand(const QString &buildConfiguration) const
return AbstractMakeStep::init(buildConfiguration); {
QString command = value(buildConfiguration, "makeCommand").toString();
if (command.isEmpty()) {
if (ProjectExplorer::ToolChain *toolChain = m_pro->toolChain())
command = toolChain->makeCommand();
else
command = QLatin1String("make");
}
return command;
} }
void GenericMakeStep::run(QFutureInterface<bool> &fi) void GenericMakeStep::run(QFutureInterface<bool> &fi)
@@ -171,9 +181,9 @@ void GenericMakeStepConfigWidget::init(const QString &buildConfiguration)
m_buildConfiguration = buildConfiguration; m_buildConfiguration = buildConfiguration;
// TODO: Label should update when tool chain is changed // TODO: Label should update when tool chain is changed
m_ui->makeLabel->setText(tr("Override %1:").arg(m_makeStep->command(buildConfiguration))); m_ui->makeLabel->setText(tr("Override %1:").arg(m_makeStep->makeCommand(buildConfiguration)));
const QString &makeCommand = m_makeStep->value(buildConfiguration, "makeCommand").toString(); QString makeCommand = m_makeStep->value(buildConfiguration, "makeCommand").toString();
m_ui->makeLineEdit->setText(makeCommand); m_ui->makeLineEdit->setText(makeCommand);
const QStringList &makeArguments = const QStringList &makeArguments =
@@ -189,26 +199,36 @@ void GenericMakeStepConfigWidget::init(const QString &buildConfiguration)
item->setCheckState(m_makeStep->buildsTarget(buildConfiguration, item->text()) ? Qt::Checked : Qt::Unchecked); item->setCheckState(m_makeStep->buildsTarget(buildConfiguration, item->text()) ? Qt::Checked : Qt::Unchecked);
} }
updateDetails();
// and connect again // and connect again
connect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); connect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*)));
} }
void GenericMakeStepConfigWidget::updateDetails()
{
m_summaryText = tr("<b>Make:</b> %1 %2")
.arg(m_makeStep->makeCommand(m_buildConfiguration),
ProjectExplorer::Environment::joinArgumentList(m_makeStep->replacedArguments(m_buildConfiguration)));
emit updateSummary();
}
QString GenericMakeStepConfigWidget::summaryText() const QString GenericMakeStepConfigWidget::summaryText() const
{ {
// TODO return m_summaryText;
return tr("<b>Make:</b>");
} }
void GenericMakeStepConfigWidget::itemChanged(QListWidgetItem *item) void GenericMakeStepConfigWidget::itemChanged(QListWidgetItem *item)
{ {
QTC_ASSERT(!m_buildConfiguration.isNull(), return); QTC_ASSERT(!m_buildConfiguration.isNull(), return);
m_makeStep->setBuildTarget(m_buildConfiguration, item->text(), item->checkState() & Qt::Checked); m_makeStep->setBuildTarget(m_buildConfiguration, item->text(), item->checkState() & Qt::Checked);
updateDetails();
} }
void GenericMakeStepConfigWidget::makeLineEditTextEdited() void GenericMakeStepConfigWidget::makeLineEditTextEdited()
{ {
QTC_ASSERT(!m_buildConfiguration.isNull(), return); QTC_ASSERT(!m_buildConfiguration.isNull(), return);
m_makeStep->setValue(m_buildConfiguration, "makeCommand", m_ui->makeLineEdit->text()); m_makeStep->setValue(m_buildConfiguration, "makeCommand", m_ui->makeLineEdit->text());
updateDetails();
} }
void GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited() void GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited()
@@ -216,6 +236,7 @@ void GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited()
QTC_ASSERT(!m_buildConfiguration.isNull(), return); QTC_ASSERT(!m_buildConfiguration.isNull(), return);
m_makeStep->setValue(m_buildConfiguration, "makeArguments", m_makeStep->setValue(m_buildConfiguration, "makeArguments",
ProjectExplorer::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text())); ProjectExplorer::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text()));
updateDetails();
} }
// //

View File

@@ -62,6 +62,8 @@ public:
GenericProject *project() const; GenericProject *project() const;
bool buildsTarget(const QString &buildConfiguration, const QString &target) const; bool buildsTarget(const QString &buildConfiguration, const QString &target) const;
void setBuildTarget(const QString &buildConfiguration, const QString &target, bool on); void setBuildTarget(const QString &buildConfiguration, const QString &target, bool on);
QStringList replacedArguments(const QString &buildConfiguration) const;
QString makeCommand(const QString &buildConfiguration) const;
private: private:
GenericProject *m_pro; GenericProject *m_pro;
}; };
@@ -79,9 +81,11 @@ private slots:
void makeLineEditTextEdited(); void makeLineEditTextEdited();
void makeArgumentsLineEditTextEdited(); void makeArgumentsLineEditTextEdited();
private: private:
void updateDetails();
QString m_buildConfiguration; QString m_buildConfiguration;
Ui::GenericMakeStep *m_ui; Ui::GenericMakeStep *m_ui;
GenericMakeStep *m_makeStep; GenericMakeStep *m_makeStep;
QString m_summaryText;
}; };
class GenericMakeStepFactory : public ProjectExplorer::IBuildStepFactory class GenericMakeStepFactory : public ProjectExplorer::IBuildStepFactory