aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager/makestep.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <[email protected]>2010-11-12 17:23:55 +0100
committerOswald Buddenhagen <[email protected]>2010-11-17 13:19:08 +0100
commit79be54ed8cb966020227aa94300bca5413cdc070 (patch)
treeb25cc6db032c9f03c18f978957a2730bfc93ad98 /src/plugins/cmakeprojectmanager/makestep.cpp
parent1e362b0f8b0dfd712337df35cd26c5dc98dfc294 (diff)
replace env variable injection with pervasive expando support
do not inject SOURCEDIR and BUILDDIR into the environment of build steps and run configurations any more. instead, all custom executable paths, argument lists and working directories now support the %{sourceDir} and %{buildDir} macros. this approach is more elegant and more scalable.
Diffstat (limited to 'src/plugins/cmakeprojectmanager/makestep.cpp')
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.cpp37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index 1f1b1e76324..ab93540b83c 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -129,18 +129,20 @@ bool MakeStep::init()
{
CMakeBuildConfiguration *bc = cmakeBuildConfiguration();
- setEnabled(true);
- setWorkingDirectory(bc->buildDirectory());
-
- setCommand(bc->toolChain()->makeCommand());
-
QString arguments = Utils::QtcProcess::joinArgs(m_buildTargets);
Utils::QtcProcess::addArgs(&arguments, additionalArguments());
- setArguments(arguments);
- setEnvironment(bc->environment());
+
+ setEnabled(true);
setIgnoreReturnValue(m_clean);
- setOutputParser(new ProjectExplorer::GnuMakeParser(workingDirectory()));
+ ProcessParameters *pp = processParameters();
+ pp->setMacroExpander(bc->macroExpander());
+ pp->setEnvironment(bc->environment());
+ pp->setWorkingDirectory(bc->buildDirectory());
+ pp->setCommand(bc->toolChain()->makeCommand());
+ pp->setArguments(arguments);
+
+ setOutputParser(new ProjectExplorer::GnuMakeParser(pp->effectiveWorkingDirectory()));
if (bc->toolChain())
appendOutputParser(bc->toolChain()->outputParser());
@@ -292,15 +294,22 @@ void MakeStepConfigWidget::buildTargetsChanged()
void MakeStepConfigWidget::updateDetails()
{
- QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets);
- Utils::QtcProcess::addArgs(&arguments, m_makeStep->additionalArguments());
-
CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration();
ProjectExplorer::ToolChain *tc = bc->toolChain();
- if (tc)
- m_summaryText = tr("<b>Make:</b> %1 %2").arg(tc->makeCommand(), arguments);
- else
+ if (tc) {
+ QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets);
+ Utils::QtcProcess::addArgs(&arguments, m_makeStep->additionalArguments());
+
+ ProcessParameters param;
+ param.setMacroExpander(bc->macroExpander());
+ param.setEnvironment(bc->environment());
+ param.setWorkingDirectory(bc->buildDirectory());
+ param.setCommand(tc->makeCommand());
+ param.setArguments(arguments);
+ m_summaryText = param.summary(displayName());
+ } else {
m_summaryText = tr("<b>Unknown Toolchain</b>");
+ }
emit updateSummary();
}