26 lines
1.2 KiB
ReStructuredText
26 lines
1.2 KiB
ReStructuredText
|
CMP0012
|
||
|
-------
|
||
|
|
||
|
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 0 and 1. Numbers and
|
||
|
boolean constants such as true, false, yes, no, on, off, y, n,
|
||
|
notfound, ignore (all case insensitive) were recognized in some cases
|
||
|
but not all. For example, the code "if(TRUE)" might have evaluated as
|
||
|
false. Numbers such as 2 were recognized only in boolean expressions
|
||
|
like "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.
|
||
|
|
||
|
The OLD behavior for this policy is to implicitly dereference
|
||
|
variables named like numbers and boolean constants. The NEW behavior
|
||
|
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
|
||
|
|release| warns when the policy is not set and uses OLD behavior. Use
|
||
|
the cmake_policy command to set it to OLD or NEW explicitly.
|