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

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

  • 如果關鍵字預期在其後給定一個值,但未提供任何值,則先前會將其視為未給定該關鍵字。

  • COMMENT 關鍵字預期在其後正好有一個值。如果給定多個值,或者如果 COMMENT 關鍵字被給定多次,則這會是錯誤。

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

注意

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