CMP0012¶
警告
該方針的 OLD 行為已在 CMake 版本 4.0 中移除。該方針必須透過呼叫 cmake_minimum_required() 或 cmake_policy() 設定為 NEW。
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.
此方針於 CMake 版本 2.8.0 中引入。在 CMake 版本 4.0 移除之前,它可以透過 cmake_policy() 或 cmake_minimum_required() 設定。如果未設定,CMake warned,並使用 OLD 行為。