From 6d5f74fcd7dd6c6490667f92382d7fda27ce9b3e Mon Sep 17 00:00:00 2001 From: Craig Scott <craig.scott@crascit.com> Date: Sat, 17 Jul 2021 16:43:12 +1000 Subject: [PATCH] Help: Clarify wording of CMP0124 --- Help/policy/CMP0124.rst | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Help/policy/CMP0124.rst b/Help/policy/CMP0124.rst index 88d03e35dda..3935166ad5e 100644 --- a/Help/policy/CMP0124.rst +++ b/Help/policy/CMP0124.rst @@ -3,14 +3,12 @@ CMP0124 .. versionadded:: 3.21 -The loop variables created by :command:`foreach` command have now their scope -restricted to the loop scope. +When this policy is set to ``NEW``, the scope of loop variables defined by the +:command:`foreach` command is restricted to the loop only. They will be unset +at the end of the loop. -Starting with CMake 3.21, the :command:`foreach` command ensures that the loop -variables have their scope restricted to the loop scope. - -The ``OLD`` behavior for this policy let the loop variables to exist, with an -empty value, in the outer scope of loop scope. +The ``OLD`` behavior for this policy still clears the loop variables at the end +of the loop, but does not unset them. This leaves them as defined, but empty. This policy was introduced in CMake version 3.21. Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. -- GitLab