forked from qt-creator/qt-creator
Make generic make step fit in to the new Project settings.
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user