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 版本中被移除。