From f406a38ca75ea56fe71cec7d10dfb2746444017d Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 5 Nov 2014 14:01:26 +0100 Subject: [PATCH] Provide %{buildDir} macro expansion again. This was a regression introduced during the macro expander rework. Task-number: QTCREATORBUG-13260 Change-Id: I9fd28c6a522faa11992931f937dd0b0eb779f419 Reviewed-by: Tobias Hunger --- .../projectexplorer/buildconfiguration.cpp | 25 +++---------------- .../projectexplorer/buildconfiguration.h | 1 - .../projectexplorer/deployconfiguration.cpp | 2 ++ .../projectexplorer/runconfiguration.cpp | 2 ++ src/plugins/projectexplorer/target.cpp | 23 +++++++++++++++++ 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 7ae211d4a79..b157ba3d93c 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -75,6 +75,8 @@ BuildConfiguration::BuildConfiguration(Target *target, Core::Id id) : connect(target, SIGNAL(kitChanged()), this, SLOT(handleKitUpdate())); connect(this, SIGNAL(environmentChanged()), this, SLOT(emitBuildDirectoryChanged())); + + macroExpander()->registerSubProvider([target] { return target->macroExpander(); }); } BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *source) : @@ -92,29 +94,8 @@ BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *sourc connect(target, SIGNAL(kitChanged()), this, SLOT(handleKitUpdate())); -} -void BuildConfiguration::setupMacroExpander() -{ - Utils::MacroExpander *expander = macroExpander(); - - expander->registerSubProvider( - [this] { return target()->kit()->macroExpander(); }); - - // Legacy support. - expander->registerVariable(Constants::VAR_CURRENTPROJECT_NAME, - QCoreApplication::translate("ProjectExplorer", "Name of current project"), - [this] { return target()->project()->displayName(); }); - - expander->registerVariable(Constants::VAR_CURRENTBUILD_NAME, - QCoreApplication::translate("ProjectExplorer", "Name of current build"), - [this] { return displayName(); }); - - expander->registerVariable("sourceDir", tr("Source directory"), - [this] { return target()->project()->projectDirectory().toUserOutput(); }); - - expander->registerVariable("buildDir", tr("Build directory"), - [this] { return buildDirectory().toUserOutput(); }); + macroExpander()->registerSubProvider([target] { return target->macroExpander(); }); } BuildConfiguration::~BuildConfiguration() diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 283b33a4e82..cc8b17ecdeb 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -107,7 +107,6 @@ private slots: private: void emitEnvironmentChanged(); - void setupMacroExpander(); bool m_clearSystemEnvironment; QList m_userEnvironmentChanges; diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index debe8b0be18..b777a77f9e2 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -53,6 +53,7 @@ DeployConfiguration::DeployConfiguration(Target *target, Core::Id id) : m_stepList->setDefaultDisplayName(tr("Deploy")); //: Default DeployConfiguration display name setDefaultDisplayName(tr("Deploy locally")); + macroExpander()->registerSubProvider([target] { return target->macroExpander(); }); } DeployConfiguration::DeployConfiguration(Target *target, DeployConfiguration *source) : @@ -63,6 +64,7 @@ DeployConfiguration::DeployConfiguration(Target *target, DeployConfiguration *so // Do not clone stepLists here, do that in the derived constructor instead // otherwise BuildStepFactories might reject to set up a BuildStep for us // since we are not yet the derived class! + macroExpander()->registerSubProvider([target] { return target->macroExpander(); }); } DeployConfiguration::~DeployConfiguration() diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index f9e6e348ec6..1d1b7b637b6 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -253,6 +253,8 @@ void RunConfiguration::addExtraAspect(IRunConfigurationAspect *aspect) void RunConfiguration::ctor() { connect(this, SIGNAL(enabledChanged()), this, SIGNAL(requestRunActionsUpdate())); + + macroExpander()->registerSubProvider([this] { return target()->macroExpander(); }); } /*! diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 11b25292c67..32b1e52f64a 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -138,6 +138,29 @@ Target::Target(Project *project, Kit *k) : this, SLOT(handleKitUpdates(ProjectExplorer::Kit*))); connect(km, SIGNAL(kitRemoved(ProjectExplorer::Kit*)), this, SLOT(handleKitRemoval(ProjectExplorer::Kit*))); + + Utils::MacroExpander *expander = macroExpander(); + + expander->registerSubProvider([this] { return kit()->macroExpander(); }); + + // Legacy support. + expander->registerVariable(Constants::VAR_CURRENTPROJECT_NAME, + QCoreApplication::translate("ProjectExplorer", "Name of current project"), + [project] { return project->displayName(); }, + false); + + expander->registerVariable(Constants::VAR_CURRENTBUILD_NAME, + QCoreApplication::translate("ProjectExplorer", "Name of current build"), + [this] { return activeBuildConfiguration() ? activeBuildConfiguration()->displayName() : QString(); }, + false); + + expander->registerVariable("sourceDir", tr("Source directory"), + [project] { return project->projectDirectory().toUserOutput(); }); + + expander->registerVariable("buildDir", tr("Build directory"), + [this] { return activeBuildConfiguration() + ? activeBuildConfiguration()->buildDirectory().toUserOutput() + : QString() ; }); } Target::~Target()