[cmake-developers] [PATCH v5 0/4] Add continue keyword

Gregor Jasny gjasny at googlemail.com
Tue Nov 18 10:34:28 EST 2014


Hello,

Changes compared to v4:
* Use new style error reporting in cmContinueCommand.cxx
* Reject any given arguments to continue()
* CMP0055: Reject any arguments to break, too.

I put both checks: the loop block check and the empty arguments
check into the same policy. Please drop me a note if you want to
have an extra policy per check.

Thanks,
Gregor

Gregor Jasny (4):
  Add continue keyword (#14013)
  Reject continue() without loop block (#14013)
  Reject continue with arguments (#14013)
  Strict checks for break() command

 Help/command/continue.rst                          |  7 +++
 Help/manual/cmake-policies.7.rst                   |  1 +
 Help/policy/CMP0055.rst                            | 17 ++++++
 Source/cmBootstrapCommands1.cxx                    |  2 +
 Source/cmBreakCommand.cxx                          | 68 +++++++++++++++++++++-
 Source/cmContinueCommand.cxx                       | 40 +++++++++++++
 Source/cmContinueCommand.h                         | 55 +++++++++++++++++
 Source/cmExecutionStatus.h                         |  7 +++
 Source/cmForEachCommand.cxx                        | 12 ++++
 Source/cmIfCommand.cxx                             |  5 ++
 Source/cmMakefile.cxx                              | 48 +++++++++++++++
 Source/cmMakefile.h                                | 21 +++++++
 Source/cmPolicies.cxx                              |  5 ++
 Source/cmPolicies.h                                |  1 +
 Source/cmWhileCommand.cxx                          |  8 +++
 .../CMP0055/CMP0055-NEW-Out-of-Scope-result.txt    |  1 +
 .../CMP0055/CMP0055-NEW-Out-of-Scope-stderr.txt    |  4 ++
 .../CMP0055/CMP0055-NEW-Out-of-Scope.cmake         |  4 ++
 .../CMP0055-NEW-Reject-Arguments-result.txt        |  1 +
 .../CMP0055-NEW-Reject-Arguments-stderr.txt        |  4 ++
 .../CMP0055/CMP0055-NEW-Reject-Arguments.cmake     |  6 ++
 .../CMP0055/CMP0055-OLD-Out-of-Scope-result.txt    |  1 +
 .../CMP0055/CMP0055-OLD-Out-of-Scope-stderr.txt    |  1 +
 .../CMP0055/CMP0055-OLD-Out-of-Scope.cmake         |  4 ++
 .../CMP0055-OLD-Reject-Arguments-result.txt        |  1 +
 .../CMP0055-OLD-Reject-Arguments-stderr.txt        |  1 +
 .../CMP0055/CMP0055-OLD-Reject-Arguments.cmake     |  6 ++
 .../CMP0055/CMP0055-WARN-Out-of-Scope-result.txt   |  1 +
 .../CMP0055/CMP0055-WARN-Out-of-Scope-stderr.txt   |  9 +++
 .../CMP0055/CMP0055-WARN-Out-of-Scope.cmake        |  2 +
 .../CMP0055-WARN-Reject-Arguments-result.txt       |  1 +
 .../CMP0055-WARN-Reject-Arguments-stderr.txt       | 10 ++++
 .../CMP0055/CMP0055-WARN-Reject-Arguments.cmake    |  4 ++
 Tests/RunCMake/CMP0055/CMakeLists.txt              |  3 +
 Tests/RunCMake/CMP0055/RunCMakeTest.cmake          |  9 +++
 Tests/RunCMake/CMakeLists.txt                      |  3 +
 Tests/RunCMake/continue/CMakeLists.txt             |  3 +
 .../RunCMake/continue/ContinueForEachInLists.cmake | 10 ++++
 Tests/RunCMake/continue/ContinueForeach-stdout.txt |  4 ++
 Tests/RunCMake/continue/ContinueForeach.cmake      |  8 +++
 .../continue/ContinueNestedForeach-stdout.txt      |  6 ++
 .../RunCMake/continue/ContinueNestedForeach.cmake  | 13 +++++
 Tests/RunCMake/continue/ContinueWhile-stdout.txt   |  6 ++
 Tests/RunCMake/continue/ContinueWhile.cmake        | 10 ++++
 .../continue/NoArgumentsToContinue-result.txt      |  1 +
 .../continue/NoArgumentsToContinue-stderr.txt      |  1 +
 .../RunCMake/continue/NoArgumentsToContinue.cmake  |  3 +
 .../RunCMake/continue/NoEnclosingBlock-result.txt  |  1 +
 .../RunCMake/continue/NoEnclosingBlock-stderr.txt  |  2 +
 Tests/RunCMake/continue/NoEnclosingBlock.cmake     |  1 +
 .../continue/NoEnclosingBlockInFunction-result.txt |  1 +
 .../continue/NoEnclosingBlockInFunction-stderr.txt |  2 +
 .../continue/NoEnclosingBlockInFunction.cmake      |  8 +++
 Tests/RunCMake/continue/RunCMakeTest.cmake         |  9 +++
 Tests/RunCMake/return/CMakeLists.txt               |  3 +
 Tests/RunCMake/return/ReturnFromForeach-result.txt |  1 +
 Tests/RunCMake/return/ReturnFromForeach.cmake      | 10 ++++
 Tests/RunCMake/return/RunCMakeTest.cmake           |  3 +
 58 files changed, 478 insertions(+), 1 deletion(-)
 create mode 100644 Help/command/continue.rst
 create mode 100644 Help/policy/CMP0055.rst
 create mode 100644 Source/cmContinueCommand.cxx
 create mode 100644 Source/cmContinueCommand.h
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Out-of-Scope-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Out-of-Scope-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Out-of-Scope.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Reject-Arguments-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Reject-Arguments-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-NEW-Reject-Arguments.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Out-of-Scope-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Out-of-Scope-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Out-of-Scope.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Reject-Arguments-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Reject-Arguments-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-OLD-Reject-Arguments.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Out-of-Scope-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Out-of-Scope-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Out-of-Scope.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Reject-Arguments-result.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Reject-Arguments-stderr.txt
 create mode 100644 Tests/RunCMake/CMP0055/CMP0055-WARN-Reject-Arguments.cmake
 create mode 100644 Tests/RunCMake/CMP0055/CMakeLists.txt
 create mode 100644 Tests/RunCMake/CMP0055/RunCMakeTest.cmake
 create mode 100644 Tests/RunCMake/continue/CMakeLists.txt
 create mode 100644 Tests/RunCMake/continue/ContinueForEachInLists.cmake
 create mode 100644 Tests/RunCMake/continue/ContinueForeach-stdout.txt
 create mode 100644 Tests/RunCMake/continue/ContinueForeach.cmake
 create mode 100644 Tests/RunCMake/continue/ContinueNestedForeach-stdout.txt
 create mode 100644 Tests/RunCMake/continue/ContinueNestedForeach.cmake
 create mode 100644 Tests/RunCMake/continue/ContinueWhile-stdout.txt
 create mode 100644 Tests/RunCMake/continue/ContinueWhile.cmake
 create mode 100644 Tests/RunCMake/continue/NoArgumentsToContinue-result.txt
 create mode 100644 Tests/RunCMake/continue/NoArgumentsToContinue-stderr.txt
 create mode 100644 Tests/RunCMake/continue/NoArgumentsToContinue.cmake
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlock-result.txt
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlock-stderr.txt
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlock.cmake
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlockInFunction-result.txt
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlockInFunction-stderr.txt
 create mode 100644 Tests/RunCMake/continue/NoEnclosingBlockInFunction.cmake
 create mode 100644 Tests/RunCMake/continue/RunCMakeTest.cmake
 create mode 100644 Tests/RunCMake/return/CMakeLists.txt
 create mode 100644 Tests/RunCMake/return/ReturnFromForeach-result.txt
 create mode 100644 Tests/RunCMake/return/ReturnFromForeach.cmake
 create mode 100644 Tests/RunCMake/return/RunCMakeTest.cmake

-- 
1.9.3 (Apple Git-50)



More information about the cmake-developers mailing list