CMP0037¶
目標名稱不應保留,且應符合有效性模式。
CMake 2.8.12 及更早版本允許使用 add_library()
、 add_executable()
和 add_custom_target()
建立目標,目標名稱的選擇不受限制。較新的 CMake 功能,如 cmake-generator-expressions(7)
和某些診斷,要求目標名稱符合受限制的模式。
目標名稱可以包含大小寫字母、數字、底線字元(_
)、點(.
)、加號(+
)和減號(-
)。作為特例,ALIAS
和 IMPORTED
目標可以包含兩個連續的冒號。
不允許使用一個或多個 CMake 產生器保留的目標名稱。其中包含 all
、clean
、help
和 install
。
與可選功能相關聯的目標名稱,例如 test
和 package
,也可能被保留。CMake 3.10 及更早版本總是保留它們。CMake 3.11 及更高版本僅在啟用對應功能時才保留它們(例如,透過包含 CTest
或 CPack
模組)。
此政策的 OLD
行為是允許建立具有保留名稱或不符合有效性模式的目標。此政策的 NEW
行為是在使用無效目標名稱時,如果使用 add_* 命令則報告錯誤。
此政策在 CMake 3.0 版中引入。可以使用 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
政策的 OLD
行為 依定義已棄用
,並可能在未來版本的 CMake 中移除。