CMP0176

新增於 3.31 版本。

execute_process()ENCODING 選項預設為 UTF-8

ENCODING 選項僅在 Windows 上有意義。它指定處理程序在 stdout 和 stderr 上輸出的字元編碼。在 CMake 3.14 及更早的版本中,預設編碼為 NONE,這對應於 CMake 的內部 UTF-8 編碼。在 CMake 3.15 到 CMake 3.30 中,預設編碼意外地變更為 AUTO,但此變更未被注意且未被記錄。

CMake 3.31 及更高版本偏好 ENCODING 的預設值為 UTF-8。此政策提供了與可能一直以來依賴預設值為 AUTO 的專案的相容性。

此政策的 OLD 行為是若未指定 ENCODING,則 execute_process() 預設使用 AUTO。此政策的 NEW 行為是預設使用 UTF-8 作為預設 ENCODING

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

注意

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