CMP0175

在版本 3.31 中添加。

add_custom_command() 拒绝无效参数。

CMake 3.30 及更早版本会默默地忽略 add_custom_command() 命令不同形式的不支持的关键字以及缺失或无效的参数。CMake 3.31 实现了更严格的参数检查,并将无效或缺失的参数标记为错误。

此策略的 OLD 行为将接受与 CMake 3.30 及更早版本相同的无效关键字或参数。NEW 行为将以下先前未报告的错误标记为错误:

  • OUTPUT 形式不接受 PRE_BUILDPRE_LINKPOST_BUILD 关键字。

  • 当给出 APPEND 关键字时,OUTPUT 形式也不接受 BYPRODUCTSCOMMAND_EXPAND_LISTSDEPENDS_EXPLICIT_ONLYDEPFILEJOB_POOLJOB_SERVER_AWAREUSES_TERMINALVERBATIM 关键字。

  • TARGET 形式要求给出 PRE_BUILDPRE_LINKPOST_BUILD 中的一个且仅一个。以前,如果没有给出任何关键字,则假定为 POST_BUILD,或者如果给出了多个关键字,则使用最后一个。

  • TARGET 形式不接受 DEPENDSDEPENDS_EXPLICIT_ONLYDEPFILEIMPLICIT_DEPENDSMAIN_DEPENDENCYJOB_POOLJOB_SERVER_AWARE 关键字。

  • TARGET 形式现在要求至少给出一条 COMMAND

  • 如果一个关键字期望在其后提供一个值,但未提供任何值,则以前将其视为根本未给出该关键字。

  • COMMENT 关键字期望在其后仅有一个值。如果给出多个值,或者如果 COMMENT 关键字多次出现,则这是一个错误。

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

注意

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