CMP0037

目標名稱不應保留,且應符合有效性模式。

CMake 2.8.12 及更早版本允許使用 add_library()add_executable()add_custom_target() 建立目標,目標名稱的選擇不受限制。較新的 CMake 功能,如 cmake-generator-expressions(7) 和某些診斷,要求目標名稱符合受限制的模式。

目標名稱可以包含大小寫字母、數字、底線字元(_)、點(.)、加號(+)和減號(-)。作為特例,ALIASIMPORTED 目標可以包含兩個連續的冒號。

不允許使用一個或多個 CMake 產生器保留的目標名稱。其中包含 allcleanhelpinstall

與可選功能相關聯的目標名稱,例如 testpackage,也可能被保留。CMake 3.10 及更早版本總是保留它們。CMake 3.11 及更高版本僅在啟用對應功能時才保留它們(例如,透過包含 CTestCPack 模組)。

此政策的 OLD 行為是允許建立具有保留名稱或不符合有效性模式的目標。此政策的 NEW 行為是在使用無效目標名稱時,如果使用 add_* 命令則報告錯誤。

此政策在 CMake 3.0 版中引入。可以使用 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

政策的 OLD 行為 依定義已棄用,並可能在未來版本的 CMake 中移除。