if() recognizes numbers and boolean constants.
In CMake versions 2.6.4 and lower the
if() command implicitly
dereferenced arguments corresponding to variables, even those named
like numbers or boolean constants, except for
1. Numbers and
boolean constants such as
ignore (all case insensitive)
were recognized in some cases but not all. For example, the code
might have evaluated as
Numbers such as 2 were recognized only in boolean expressions
if(NOT 2) (leading to
false) but not as a single-argument like
if(2) (also leading to
false). Later versions of CMake prefer to
treat numbers and boolean constants literally, so they should not be
used as variable names.
OLD behavior for this policy is to implicitly dereference
variables named like numbers and boolean constants. The
for this policy is to recognize numbers and boolean constants without
dereferencing variables with such names.
This policy was introduced in CMake version 2.8.0. CMake version
3.19.8 warns when the policy is not set and uses
OLD behavior. Use
cmake_policy() command to set it to
OLD behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.