CMP0037

警告

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

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

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 4.0 版本中移除之前,可以透過 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。