CMP0175

3.31 版中新增。

add_custom_command() 拒绝无效的 arguments。

CMake 3.30 及更早版本会默默忽略对不同形式的 add_custom_command() 命令使用时说明未说明的关键词及 missing 或无效的参数。CMake 3.31 实现了更严格的参数检查,并将无效或 missing 参数标记为 errors。

此策略的 OLD 行为将接受与 CMake 3.30 及更早版本相同的无效关键词或参数。 NEW 行为会将之前未报告的以下内容标记为 errors

  • 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_AWAREUSES_TERMINAL 关键词。

  • TARGET 形式现在要求提供至少一个 COMMAND

  • 如果关键字后面应该有一个值,但没有提供,就和这个关键字没有作用一样。

  • COMMENT 关键字后面应该有一个值。如果给出了多个值,或者 COMMENT 关键字给出多次,则会出现错误。

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

注意

策略的 OLD 行为 被弃用 by definition 并可能在将来的 CMake 版本中移除。