Wrapping tools and UTF-8 on Windows
Ninja 1.11 will switch to utf-8 on Windows, and CMake 3.21 supports this change (CMake !5860).
Currently the wrapping tools expect utf-8 source files and output files, but use the ANSI CP for command-line options, filenames, and stdout/stderr.
The handling of command-line options is mediated by parse_check_options() in
vtkParseMain.c. This can be modified to get wide command-line args on Windows and convert them to utf-8 in a manner similar to this repository. Also, most of the wrapping-tool options are supplied by response files, which will already be utf-8 during any build that utilizes utf-8.
Switching stdout/stderr to utf-8 on Windows can be done by calling SetConsoleOutputCP(65001).
Access to files can use the wide version of system functions on Windows, e.g. _wfopen() instead of fopen().