CMP0012

警告

此策略的 OLD 行為已在 CMake 4.0 版本中移除。此策略必須透過呼叫 cmake_minimum_required()cmake_policy() 設定為 NEW

if() 辨識數字和布林常數。

在 CMake 2.6.4 及更低版本中,if() 命令會隱式地解引用對應於變數的參數,即使是那些命名像數字或布林常數的變數,除了 01 之外。數字和布林常數,例如 truefalseyesnoonoffynnotfoundignore (全部不區分大小寫) 在某些情況下被辨識,但並非全部。例如,程式碼 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 行為。