diff options
author | Oswald Buddenhagen <[email protected]> | 2010-11-12 17:23:55 +0100 |
---|---|---|
committer | Oswald Buddenhagen <[email protected]> | 2010-11-17 13:19:08 +0100 |
commit | 79be54ed8cb966020227aa94300bca5413cdc070 (patch) | |
tree | b25cc6db032c9f03c18f978957a2730bfc93ad98 /src/plugins/cmakeprojectmanager/makestep.cpp | |
parent | 1e362b0f8b0dfd712337df35cd26c5dc98dfc294 (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.cpp | 37 |
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(); } |