diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp index 99658dd7147..ce8be4c9b9d 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.cpp +++ b/src/plugins/autotoolsprojectmanager/makestep.cpp @@ -262,7 +262,7 @@ void MakeStepConfigWidget::updateDetails() Utils::QtcProcess::addArgs(&arguments, m_makeStep->additionalArguments()); ProcessParameters param; - param.setMacroExpander(bc->macroExpander()); + param.setMacroExpander(m_makeStep->macroExpander()); param.setEnvironment(bc->environment()); param.setWorkingDirectory(bc->buildDirectory().toString()); param.setCommand(tcList.at(0)->makeCommand(bc->environment())); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 1f4f87cf03e..d428b0bef30 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -115,6 +115,7 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) : ProjectConfiguration(bsl, id), m_enabled(true) { Q_ASSERT(bsl); + ctor(); } BuildStep::BuildStep(BuildStepList *bsl, BuildStep *bs) : @@ -122,6 +123,15 @@ BuildStep::BuildStep(BuildStepList *bsl, BuildStep *bs) : { Q_ASSERT(bsl); setDisplayName(bs->displayName()); + ctor(); +} + +void BuildStep::ctor() +{ + Utils::MacroExpander *expander = macroExpander(); + expander->setDisplayName(tr("Build Step")); + expander->setAccumulating(true); + expander->registerSubProvider([this] { return projectConfiguration()->macroExpander(); }); } bool BuildStep::fromMap(const QVariantMap &map) diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index c1c6949edec..bd907d9ddec 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -95,6 +95,8 @@ signals: void enabledChanged(); private: + void ctor(); + bool m_enabled; }; diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp index 2cae277a6d8..9b95a0870c1 100644 --- a/src/plugins/projectexplorer/processstep.cpp +++ b/src/plugins/projectexplorer/processstep.cpp @@ -30,6 +30,8 @@ #include "target.h" #include "kit.h" +#include + #include #include @@ -204,6 +206,7 @@ ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step) : connect(m_ui.commandArgumentsLineEdit, &QLineEdit::textEdited, this, &ProcessStepConfigWidget::commandArgumentsLineEditTextEdited); + Core::VariableChooser::addSupportForChildWidgets(this, m_step->macroExpander()); } void ProcessStepConfigWidget::updateDetails() diff --git a/src/plugins/qmakeprojectmanager/makestep.cpp b/src/plugins/qmakeprojectmanager/makestep.cpp index c2a2315b519..de4666461ba 100644 --- a/src/plugins/qmakeprojectmanager/makestep.cpp +++ b/src/plugins/qmakeprojectmanager/makestep.cpp @@ -32,6 +32,7 @@ #include "qmakebuildconfiguration.h" #include "qmakeprojectmanagerconstants.h" +#include #include #include #include @@ -357,6 +358,8 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged, this, &MakeStepConfigWidget::updateDetails); connect(m_makeStep->target(), &Target::kitChanged, this, &MakeStepConfigWidget::updateDetails); + + Core::VariableChooser::addSupportForChildWidgets(this, m_makeStep->macroExpander()); } void MakeStepConfigWidget::activeBuildConfigurationChanged() diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 440df96c28a..25c9a34cbcc 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -634,6 +635,9 @@ QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step) connect(step->target(), &Target::kitChanged, this, &QMakeStepConfigWidget::qtVersionChanged); connect(QtVersionManager::instance(), &QtVersionManager::dumpUpdatedFor, this, &QMakeStepConfigWidget::qtVersionChanged); + auto chooser = new Core::VariableChooser(m_ui->qmakeAdditonalArgumentsLineEdit); + chooser->addMacroExpanderProvider([step] { return step->macroExpander(); }); + chooser->addSupportedWidget(m_ui->qmakeAdditonalArgumentsLineEdit); } QMakeStepConfigWidget::~QMakeStepConfigWidget()