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_BUILD
、PRE_LINK
或POST_BUILD
关键词。当提供
APPEND
关键词时,OUTPUT
形式也不接受BYPRODUCTS
、COMMAND_EXPAND_LISTS
、DEPENDS_EXPLICIT_ONLY
、DEPFILE
、JOB_POOL
、JOB_SERVER_AWARE
、USES_TERMINAL
或VERBATIM
关键词。TARGET
形式要求提供PRE_BUILD
、PRE_LINK
或POST_BUILD
中的唯一一个。以前,如果未提供,则假定为POST_BUILD
,或者如果提供了多个关键字,则使用最后一个。TARGET
形式不接受DEPENDS
、DEPENDS_EXPLICIT_ONLY
、DEPFILE
、IMPLICIT_DEPENDS
、MAIN_DEPENDENCY
、JOB_POOL
、JOB_SERVER_AWARE
或USES_TERMINAL
关键词。TARGET
形式现在要求提供至少一个COMMAND
。如果关键字后面应该有一个值,但没有提供,就和这个关键字没有作用一样。
COMMENT
关键字后面应该有一个值。如果给出了多个值,或者COMMENT
关键字给出多次,则会出现错误。
此策略在 CMake 版本 3.31 中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果没有设置,CMake 会发出警告并使用 OLD
行为。
注意
策略的 OLD
行为 被弃用 by definition
并可能在将来的 CMake 版本中移除。