CMP0176¶
在版本 3.31 中添加。
execute_process() 的 ENCODING 选项默认值为 UTF-8。
只有在 Windows 上,ENCODING 选项才有意义。它指定了进程在 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 中被移除。