1CMP0102 2------- 3 4.. versionadded:: 3.17 5 6The :command:`mark_as_advanced` command no longer creates a cache entry if one 7does not already exist. 8 9In CMake 3.16 and below, if a variable was not defined at all or just defined 10locally, the :command:`mark_as_advanced` command would create a new cache 11entry with an ``UNINITIALIZED`` type and no value. When a :command:`find_path` 12(or other similar ``find_`` command) would next run, it would find this 13undefined cache entry and set it up with an empty string value. This process 14would end up deleting the local variable in the process (due to the way the 15cache works), effectively clearing any stored ``find_`` results that were only 16available in the local scope. 17 18The ``OLD`` behavior for this policy is to create the empty cache definition. 19The ``NEW`` behavior of this policy is to ignore variables which do not 20already exist in the cache. 21 22This policy was introduced in CMake version 3.17. Use the 23:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. 24Unlike many policies, CMake version |release| does *not* warn 25when this policy is not set and simply uses ``OLD`` behavior. See 26documentation of the :variable:`CMAKE_POLICY_WARNING_CMP0102 27<CMAKE_POLICY_WARNING_CMP<NNNN>>` variable to control the warning. 28 29.. include:: DEPRECATED.txt 30