CMP0171

添加于 3.31 版。

codegen 是保留目标名称。

CMake 3.30 及更早版本未将 codegen 保留为内置目标名称,项目可以自行创建具有该名称的目标。CMake 3.31 及更高版本更倾向于将 codegen 保留为内置目标名称,以推动使用 CODEGEN 选项与 add_custom_command() 创建的自定义命令。为了支持在脚本环境中构建 codegen 目标,例如 cmake --build . --target codegen,即使没有自定义命令使用 CODEGEN 选项,也需要生成 codegen 目标。此策略为尚未更新以避免创建名为 codegen 的目标的项目提供兼容性。

此策略的 OLD 行为允许项目创建名为 codegen 的目标。如果创建了名为 codegen 的目标,NEW 行为将以致命错误停止。

此策略在 CMake 版本 3.31 中引入。可通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 将发出警告并使用 OLD 行为。

注释

策略的 OLD 行为根据定义已 弃用,并在未来版本的 CMake 中移除。