diff options
author | Regina Pfeifer <regina@mailbox.org> | 2019-07-30 20:58:40 (GMT) |
---|---|---|
committer | Regina Pfeifer <regina@mailbox.org> | 2019-07-30 22:03:17 (GMT) |
commit | 6491270e0d3699f5151c08ef41dce84724f9ffc1 (patch) | |
tree | f4caa3b0bc5262e73352394a4bb0ed534a765133 /Source/cmForEachCommand.cxx | |
parent | af24e4ef6e216184b8c207728d6b0312ce3c1525 (diff) | |
download | CMake-6491270e0d3699f5151c08ef41dce84724f9ffc1.zip CMake-6491270e0d3699f5151c08ef41dce84724f9ffc1.tar.gz CMake-6491270e0d3699f5151c08ef41dce84724f9ffc1.tar.bz2 |
cmFunctionBlocker: Move check for matching args
Diffstat (limited to 'Source/cmForEachCommand.cxx')
-rw-r--r-- | Source/cmForEachCommand.cxx | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx index 53ae479..10ce459 100644 --- a/Source/cmForEachCommand.cxx +++ b/Source/cmForEachCommand.cxx @@ -28,7 +28,9 @@ public: cm::string_view StartCommandName() const override { return "foreach"_s; } cm::string_view EndCommandName() const override { return "endforeach"_s; } - bool ShouldRemove(const cmListFileFunction& lff, cmMakefile& mf) override; + bool ArgumentsMatch(cmListFileFunction const& lff, + cmMakefile& mf) const override; + bool Replay(std::vector<cmListFileFunction> const& functions, cmExecutionStatus& inStatus) override; @@ -49,20 +51,12 @@ cmForEachFunctionBlocker::~cmForEachFunctionBlocker() this->Makefile->PopLoopBlock(); } -bool cmForEachFunctionBlocker::ShouldRemove(const cmListFileFunction& lff, - cmMakefile& mf) +bool cmForEachFunctionBlocker::ArgumentsMatch(cmListFileFunction const& lff, + cmMakefile& mf) const { - if (lff.Name.Lower == "endforeach") { - std::vector<std::string> expandedArguments; - mf.ExpandArguments(lff.Arguments, expandedArguments); - // if the endforeach has arguments then make sure - // they match the begin foreach arguments - if ((expandedArguments.empty() || - (expandedArguments[0] == this->Args[0]))) { - return true; - } - } - return false; + std::vector<std::string> expandedArguments; + mf.ExpandArguments(lff.Arguments, expandedArguments); + return expandedArguments.empty() || expandedArguments[0] == this->Args[0]; } bool cmForEachFunctionBlocker::Replay( |