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 版本中移除。