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)
和一些诊断期望目标名称匹配受限制的模式。
目标名称可以包含大写和小写字母、数字、下划线字符 ( _
)、点 ( .
)、加号 ( +
) 和减号 ( -
)。作为特殊情况, ALIAS
和 IMPORTED
目标可以包含两个连续的冒号。
不允许使用被一个或多个 CMake 生成器保留的目标名称。其中包括 all
、 clean
、 help
和 install
等。
与可选功能关联的目标名称,例如 test
和 package
,也可能被保留。CMake 3.10 及更低版本始终保留它们。CMake 3.11 及更高版本仅在启用相应功能时保留它们(例如,通过包含 CTest
或 CPack
模块)。
此策略的 OLD
行为是允许创建具有保留名称或与有效性模式不匹配的目标。此策略的 NEW
行为是,如果 add_* 命令与无效的目标名称一起使用,则报告错误。
此策略在 CMake 版本 3.0 中引入。在 CMake 版本 4.0 中移除之前,可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 会发出警告,并使用 OLD
行为。