CMP0175¶
在 3.31 版本中添加。
add_custom_command()
拒绝无效参数。
CMake 3.30 及更早版本会静默忽略不支持的关键字以及 add_custom_command()
命令不同形式中缺失或无效的参数。CMake 3.31 实现了更严格的参数检查,并将无效或缺失的参数标记为错误。
此策略的 OLD
行为将接受与 CMake 3.30 及更早版本相同的无效关键字或参数。NEW
行为会将以下先前未报告的内容标记为错误
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
关键字。TARGET
形式现在要求必须至少给出一个COMMAND
。如果某个关键字期望在其后给出一个值,但实际上没有提供值,则以前会将其视为根本没有给出该关键字。
COMMENT
关键字期望在其后只有一个值。如果给出了多个值,或者COMMENT
关键字被多次给出,则这是一个错误。
此策略在 CMake 3.31 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 会发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为 根据定义已弃用
,并可能在未来的 CMake 版本中移除。