
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
18 lines
632 B
CMake
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}")
|