CMP0012¶
警告
此策略的 OLD
行為已在 CMake 4.0 版本中移除。此策略必須透過呼叫 cmake_minimum_required()
或 cmake_policy()
設定為 NEW
。
if()
辨識數字和布林常數。
在 CMake 2.6.4 及更低版本中,if()
命令會隱式地解引用對應於變數的參數,即使是那些命名像數字或布林常數的變數,除了 0
和 1
之外。數字和布林常數,例如 true
、false
、yes
、no
、on
、off
、y
、n
、notfound
、ignore
(全部不區分大小寫) 在某些情況下被辨識,但並非全部。例如,程式碼 if(TRUE)
可能會被評估為 false
。數字例如 2 僅在布林運算式中被辨識,例如 if(NOT 2)
(導致 false
),而不是作為單一參數,例如 if(2)
(也導致 false
)。較新版本的 CMake 傾向於將數字和布林常數視為字面值,因此它們不應被用作變數名稱。
此策略的 OLD
行為是隱式地解引用命名像數字和布林常數的變數。此策略的 NEW
行為是辨識數字和布林常數,而不解引用具有此類名稱的變數。
此策略在 CMake 2.8.0 版本中引入。在 CMake 4.0 版本中移除之前,它可以透過 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。