New in version 3.21.
When this policy is set to
set(CACHE) command does not
remove any normal variable of the same name from the current scope.
OLD behavior removes any normal variable of the same name from the
current scope in the following situations:
No cache variable of that name existed previously.
A cache variable of that name existed previously, but it had no type. This can occur when the variable was set on the command line using a form like
cmake -DMYVAR=blahinstead of
INTERNALkeywords were used when setting the cache variable.
Note that the
NEW behavior has an important difference to the similar
NEW behavior of policy
command always sets the cache variable if it did not exist previously,
regardless of the
CMP0126 policy setting. The
will not set the cache variable if a non-cache variable of the same name
already exists and
CMP0077 is set to
CMP0126 was introduced in CMake version 3.21. Use the
cmake_policy() command to set it to
within a project. Use the
CMAKE_POLICY_DEFAULT_CMP0126 variable to set the policy for
a third-party project in a subdirectory without modifying it.
Unlike many policies, CMake version 3.25.1 does not warn when the policy
is not set and simply uses
OLD behavior. See documentation of the
variable to control the warning.
OLD behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.