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_AWAREUSES_TERMINAL 關鍵字。

  • TARGET 形式現在要求至少給定一個 COMMAND

  • 如果一個關鍵字預期在它之後給定一個值,但是沒有提供值,則先前會將其視為根本沒有給定該關鍵字。

  • COMMENT 關鍵字預期在它之後精確地有一個值。如果給定了多個值,或者如果 COMMENT 關鍵字被給定多次,則會發生錯誤。

此政策是在 CMake 版本 3.31 中引入的。它可以由 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

政策的 OLD 行為根據定義 已棄用,並可能在未來版本的 CMake 中移除。