summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmCommand.h7
-rw-r--r--Source/cmMakefile.cxx3
-rw-r--r--Source/cmMakefile.h2
3 files changed, 9 insertions, 3 deletions
diff --git a/Source/cmCommand.h b/Source/cmCommand.h
index 96699ac..ed00b78 100644
--- a/Source/cmCommand.h
+++ b/Source/cmCommand.h
@@ -64,7 +64,12 @@ public:
cmExecutionStatus &status)
{
std::vector<std::string> expandedArguments;
- this->Makefile->ExpandArguments(args, expandedArguments);
+ if(!this->Makefile->ExpandArguments(args, expandedArguments))
+ {
+ // There was an error expanding arguments. It was already
+ // reported, so we can skip this command without error.
+ return true;
+ }
return this->InitialPass(expandedArguments,status);
}
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 8456d58..8f102df 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2364,7 +2364,7 @@ bool cmMakefile::IsFunctionBlocked(const cmListFileFunction& lff,
return false;
}
-void cmMakefile::ExpandArguments(
+bool cmMakefile::ExpandArguments(
std::vector<cmListFileArgument> const& inArgs,
std::vector<std::string>& outArgs)
{
@@ -2390,6 +2390,7 @@ void cmMakefile::ExpandArguments(
cmSystemTools::ExpandListArgument(value, outArgs);
}
}
+ return !cmSystemTools::GetFatalErrorOccured();
}
void cmMakefile::RemoveFunctionBlocker(const cmListFileFunction& lff)
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index f78a1dd..c2dbfb1 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -702,7 +702,7 @@ public:
* Expand the given list file arguments into the full set after
* variable replacement and list expansion.
*/
- void ExpandArguments(std::vector<cmListFileArgument> const& inArgs,
+ bool ExpandArguments(std::vector<cmListFileArgument> const& inArgs,
std::vector<std::string>& outArgs);
/**
* Get the instance