CMP0176 — CMake 4.1.4 Documentation

# CMP0176

Added in version 3.31.

`execute_process()` `ENCODING` is `UTF-8` by default.

The `ENCODING` option is meaningful only on Windows. It specifies the character encoding expected in the process's output on stdout and stderr. In CMake 3.14 and below the default encoding was `NONE`, which corresponds to CMake's internal UTF-8 encoding. In CMake 3.15 through CMake 3.30 the default encoding was accidentally changed to `AUTO`, but the change went unnoticed and was not documented.

CMake 3.31 and above prefer the `ENCODING` default to be `UTF-8`. This policy provides compatibility with projects that may have been relying on the default being `AUTO`.

The `OLD` behavior of this policy is for `execute_process()` to use `AUTO` by default if no `ENCODING` is specified. The `NEW` behavior for this policy is to use `UTF-8` as the default `ENCODING`.

This policy was introduced in CMake version 3.31. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake does not warn, and uses `OLD` behavior.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.