cmake_minimum_required¶
要求 CMake 的最低版本。
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])
在 3.12 版本中新增: 可選的 <policy_max>
版本。
設定專案所需的 CMake 最低版本。也會更新政策設定,如下所述。
<min>
和可選的 <policy_max>
各自是 major.minor[.patch[.tweak]]
形式的 CMake 版本,而 ...
是文字。
如果執行的 CMake 版本低於要求的 <min>
版本,它將停止處理專案並報告錯誤。可選的 <policy_max>
版本(如果指定)必須至少為 <min>
版本,並會影響 政策設定 中所述的政策設定。如果執行的 CMake 版本早於 3.12,額外的 ...
點將被視為版本組件分隔符,導致 ...<max>
部分被忽略,並保留基於 <min>
的政策的 3.12 之前的行為。
此命令會將 CMAKE_MINIMUM_REQUIRED_VERSION
變數的值設定為 <min>
。
CMake 2.6 及更高版本接受 FATAL_ERROR
選項,但會忽略它。應該指定它,以便 CMake 2.4 及更低版本失敗並出現錯誤,而不是僅出現警告。
注意
在呼叫 project()
命令之前,甚至在頂層 CMakeLists.txt
檔案的開頭呼叫 cmake_minimum_required()
命令。在調用其他可能影響其行為的命令之前,建立版本和政策設定非常重要。另請參閱政策 CMP0000
。
當調用時,在 function()
內部呼叫 cmake_minimum_required()
會將某些效果限制在函式範圍內。例如,CMAKE_MINIMUM_REQUIRED_VERSION
變數不會在呼叫範圍中設定。然而,函式不會引入它們自己的政策範圍,因此呼叫者的政策設定*將會*受到影響(見下文)。由於這種會影響和不會影響呼叫範圍的事物的混合,一般不建議在函式內部呼叫 cmake_minimum_required()
。
政策設定¶
cmake_minimum_required(VERSION)
命令會隱式地調用 cmake_policy(VERSION)
命令,以指定目前的專案程式碼是為給定的 CMake 版本範圍編寫的。運行中的 CMake 版本所知且在 <min>
(或 <max>
,如果指定)版本或更早版本中引入的所有政策將設定為使用 NEW
行為。在較新版本中引入的所有政策將會取消設定。這有效地要求截至給定 CMake 版本所偏好的行為,並告知較新的 CMake 版本關於它們的新政策的警告。
當指定的 <min>
版本高於 2.4 時,該命令會隱式地調用
cmake_policy(VERSION <min>[...<max>])
它會根據指定的版本範圍設定 CMake 政策。當給定 <min>
版本 2.4 或更低版本時,該命令會隱式地調用
cmake_policy(VERSION 2.4[...<max>])
它會啟用 CMake 2.4 及更低版本的相容性功能。
在 3.31 版本中變更:與 3.10 之前的 CMake 版本的相容性已被棄用。不指定至少 3.10 作為其政策版本(可選地透過 ...<max>
)的 cmake_minimum_required(VERSION)
或 cmake_policy(VERSION)
呼叫將在 CMake 3.31 及更高版本中產生棄用警告。
在 3.27 版本中變更:與 3.5 之前的 CMake 版本的相容性已被棄用。不指定至少 3.5 作為其政策版本(可選地透過 ...<max>
)的 cmake_minimum_required(VERSION)
或 cmake_policy(VERSION)
呼叫將在 CMake 3.27 及更高版本中產生棄用警告。
在 3.19 版本中變更:與 2.8.12 之前的 CMake 版本的相容性已被棄用。不指定至少 2.8.12 作為其政策版本(可選地透過 ...<max>
)的 cmake_minimum_required(VERSION)
或 cmake_policy(VERSION)
呼叫將在 CMake 3.19 及更高版本中產生棄用警告。