execute_process: Change default ENCODING to UTF-8

Windows is heading toward making UTF-8 the preferred MBCS.  As CMake's
internal encoding, `UTF-8` is effectively equivalent to `NONE`, which
was CMake's behavior prior to 3.15's accidental change to `AUTO`.
Behavior of `ENCODING UTF-8` is independent of CMake's internal
encoding, making it in principle a better default than `NONE`.

Add policy CMP0176 for compatibility and to document the default's
history.

Fixes: #26262
This commit is contained in:
Brad King
2024-09-13 11:49:50 -04:00
parent 9a4533405b
commit e782811cfe
14 changed files with 67 additions and 4 deletions
@@ -1,9 +1,12 @@
if(CMAKE_HOST_WIN32 AND CODEPAGE)
cmake_policy(GET CMP0176 CMP0176)
# Run cmake in a new Window to isolate its console code page.
execute_process(COMMAND cmd /c start /min /wait ""
${CMAKE_COMMAND} -DTEST_ENCODING_EXE=${TEST_ENCODING_EXE}
-DENCODING=${ENCODING}
-DCODEPAGE=${CODEPAGE}
-DCMP0176=${CMP0176}
-P ${CMAKE_CURRENT_LIST_DIR}/Encoding-windows.cmake)
# Load our internal UTF-8 representation of the output.