diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx index 848c6a4fe..b13a849f3 100644 --- a/Source/cmForEachCommand.cxx +++ b/Source/cmForEachCommand.cxx @@ -103,10 +103,10 @@ ShouldRemove(const cmListFileFunction& lff, cmMakefile& mf) { std::vector expandedArguments; mf.ExpandArguments(lff.Arguments, expandedArguments); - if ((!expandedArguments.empty() && - (expandedArguments[0] == this->Args[0])) - || cmSystemTools::IsOn - (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + // if the endforeach has arguments then make sure + // they match the begin foreach arguments + if ((expandedArguments.empty() || + (expandedArguments[0] == this->Args[0]))) { return true; } diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx index 1ff9d59e1..739470960 100644 --- a/Source/cmFunctionCommand.cxx +++ b/Source/cmFunctionCommand.cxx @@ -252,11 +252,11 @@ ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf) if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endfunction")) { std::vector expandedArguments; - mf.ExpandArguments(lff.Arguments, expandedArguments); - if ((!expandedArguments.empty() && - (expandedArguments[0] == this->Args[0])) - || cmSystemTools::IsOn - (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + mf.ExpandArguments(lff.Arguments, expandedArguments); + // if the endfunction has arguments then make sure + // they match the ones in the openeing function command + if ((expandedArguments.empty() || + (expandedArguments[0] == this->Args[0]))) { return true; } diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index bc82c4265..f38d2654f 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -145,9 +145,10 @@ bool cmIfFunctionBlocker::ShouldRemove(const cmListFileFunction& lff, { if (!cmSystemTools::Strucmp(lff.Name.c_str(),"endif")) { - if (cmSystemTools::IsOn - (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS")) - || lff.Arguments == this->Args) + // if the endif has arguments, then make sure + // they match the arguments of the matching if + if (lff.Arguments.size() == 0 || + lff.Arguments == this->Args) { return true; } diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx index 6b927631d..9f1c9043f 100644 --- a/Source/cmMacroCommand.cxx +++ b/Source/cmMacroCommand.cxx @@ -329,10 +329,10 @@ ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf) { std::vector expandedArguments; mf.ExpandArguments(lff.Arguments, expandedArguments); - if ((!expandedArguments.empty() && - (expandedArguments[0] == this->Args[0])) - || cmSystemTools::IsOn - (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + // if the endmacro has arguments make sure they + // match the arguments of the macro + if ((expandedArguments.empty() || + (expandedArguments[0] == this->Args[0]))) { return true; } diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 429eae8c2..c87a4dd46 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3038,15 +3038,6 @@ void cmMakefile::DefineProperties(cmake *cm) "If this is true then the outputs of custom commands for this " "directory will not be removed during the \"make clean\" stage. "); - cm->DefineProperty - ("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS", cmProperty::DIRECTORY, - "Allow loops to have non-matching closing statements.", - "If this is set then the closing statement of control " - "structures in CMake will not require an exact match to the " - "opening statement. For example IF(foo) will not require " - "ENDIF(foo) but simple ENDIF() will work.", - true); - cm->DefineProperty ("LISTFILE_STACK", cmProperty::DIRECTORY, "The current stack of listfiles being processed.", diff --git a/Source/cmWhileCommand.cxx b/Source/cmWhileCommand.cxx index 96842218b..2836c1431 100644 --- a/Source/cmWhileCommand.cxx +++ b/Source/cmWhileCommand.cxx @@ -93,9 +93,10 @@ ShouldRemove(const cmListFileFunction& lff, cmMakefile& mf) { if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endwhile")) { - if (lff.Arguments == this->Args - || cmSystemTools::IsOn - (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + // if the endwhile has arguments, then make sure + // they match the arguments of the matching while + if (lff.Arguments.size() == 0 || + lff.Arguments == this->Args) { return true; }