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
行为是:默认 ENCODING
使用 UTF-8
。
此策略引入于 CMake 版本 3.31。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake **不会** 警告,并使用 OLD
行为。
注意
策略的 OLD
行为是 按定义弃用
,并可能在未来的 CMake 版本中移除。