CMP0176

在版本 3.31 中新增。

execute_process() ENCODING 預設為 UTF-8

ENCODING 選項僅在 Windows 上有意義。 它指定 process 的 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 行為 deprecated by definition 且可能會在未來版本的 CMake 中移除。