diff options
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index d863ca3..95a0658 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -210,7 +210,13 @@ void cmMakefile::ExecuteCommand(std::string &name, // if the command is inherited then InitialPass it. if(!m_Inheriting || usedCommand->IsInherited()) { - if(!usedCommand->InitialPass(arguments)) + std::vector<std::string> expandedArguments = arguments; + for(std::vector<std::string>::iterator i = expandedArguments.begin(); + i != expandedArguments.end(); ++i) + { + this->ExpandVariablesInString(*i); + } + if(!usedCommand->InitialPass(expandedArguments)) { cmSystemTools::Error(usedCommand->GetName(), ": Error : \n", @@ -1171,10 +1177,16 @@ bool cmMakefile::IsFunctionBlocked(const char *name, { // loop over all function blockers to see if any block this command std::set<cmFunctionBlocker *>::const_iterator pos; + std::vector<std::string> expandedArguments = args; + for(std::vector<std::string>::iterator i = expandedArguments.begin(); + i != expandedArguments.end(); ++i) + { + this->ExpandVariablesInString(*i); + } for (pos = m_FunctionBlockers.begin(); pos != m_FunctionBlockers.end(); ++pos) { - if ((*pos)->IsFunctionBlocked(name, args, *this)) + if ((*pos)->IsFunctionBlocked(name, expandedArguments, *this)) { return true; } |