/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #include "cmBreakCommand.h" #include "cmExecutionStatus.h" #include "cmMakefile.h" #include "cmMessageType.h" // cmBreakCommand bool cmBreakCommand(std::vector const& args, cmExecutionStatus& status) { if (!status.GetMakefile().IsLoopBlock()) { status.GetMakefile().IssueMessage( MessageType::FATAL_ERROR, "A BREAK command was found outside of a proper " "FOREACH or WHILE loop scope."); return false; } status.SetBreakInvoked(); if (!args.empty()) { status.GetMakefile().IssueMessage( MessageType::FATAL_ERROR, "The BREAK command does not accept any arguments."); return false; } return true; }