MacroExpander: Allow registering local expansions

This allows a MacroExpander also to describe an expansion it can
do which was restricted to the global VariableManager only.

The global is now just a thin (unneeded) wrapper about new "standard"
functionality.

Change-Id: Ida7ca70cf3d319eae4220ea8d12f3dd1c0d4042c
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
hjk
2014-10-13 12:49:05 +02:00
parent e43af30faa
commit e279c7e007
35 changed files with 475 additions and 525 deletions

View File

@@ -550,10 +550,12 @@ bool ExternalToolRunner::resolve()
m_resolvedExecutable.clear();
m_resolvedArguments.clear();
m_resolvedWorkingDirectory.clear();
Utils::MacroExpander *expander = globalMacroExpander();
{ // executable
QStringList expandedExecutables; /* for error message */
foreach (const QString &executable, m_tool->executables()) {
QString expanded = Core::VariableManager::expandedString(executable);
QString expanded = expander->expandedString(executable);
expandedExecutables << expanded;
m_resolvedExecutable =
Utils::Environment::systemEnvironment().searchInPath(expanded);
@@ -574,14 +576,13 @@ bool ExternalToolRunner::resolve()
}
}
{ // arguments
m_resolvedArguments = Utils::QtcProcess::expandMacros(m_tool->arguments(),
Core::VariableManager::macroExpander());
m_resolvedArguments = Utils::QtcProcess::expandMacros(m_tool->arguments(), expander);
}
{ // input
m_resolvedInput = Core::VariableManager::expandedString(m_tool->input());
m_resolvedInput = expander->expandedString(m_tool->input());
}
{ // working directory
m_resolvedWorkingDirectory = Core::VariableManager::expandedString(m_tool->workingDirectory());
m_resolvedWorkingDirectory = expander->expandedString(m_tool->workingDirectory());
}
return true;
}