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
行为是针对 execute_process()
在未指定 ENCODING
时使用 AUTO
。此策略的 NEW
行为是使用 UTF-8
作为默认 ENCODING
。
此策略在 CMake 3.31 版本中引入。它可通过 cmake_policy()
或 cmake_minimum_required()
设置。如果没有设置,CMake 不会 发出警告,并且使用 OLD
行为。
注意
OLD
行为根据策略 已被 定义 弃用
,并且在未来版本的 CMake 中可能会被移除。