Ninja: UTF-8 filenames don't work anymore on windows with ninja 1.10
We have a file named "Kodak® T-Max 100.tif" that gets copied with a custom build command like this
set(SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Kodak® T-Max 100.tif")
get_filename_component(SOURCE_FILENAME "${SOURCE_FILE}" NAME)
set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILENAME}")
add_custom_command(OUTPUT "${OUTPUT_FILE}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${SOURCE_FILE}" "${OUTPUT_FILE}"
MAIN_DEPENDENCY "${SOURCE_FILE}"
VERBATIM
)
target_sources(${TARGET_NAME} PRIVATE "${OUTPUT_FILE}")
source_group("Generated Files" FILES "${OUTPUT_FILE}")
On macOS this works fine for all versions of CMake, on Windows this works fine for CMake 3.21.7, but with CMake 3.24.2 it doesn't work anymore on windows using Ninja or MSVC (I assume it broke before that just not sure when)