CMake/Tests/RunCMake/execute_process/Encoding.cmake
Brad King e782811cfe 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
2024-09-16 06:37:46 -04:00

18 lines
632 B
CMake

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.
file(READ "out.txt" out)
else()
include(${CMAKE_CURRENT_LIST_DIR}/Encoding-common.cmake)
endif()
message("${out}")