Commit aa183b6c for libheif

commit aa183b6cb2a7543e75e9b78aa7093930359f2653
Author: Mgen <m@mgenware.com>
Date:   Fri Jan 23 20:42:09 2026 +0800

    Support unicode paths on windows (#1358)

diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 2a7dde0f..f6e76805 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -14,6 +14,13 @@ add_executable(heif-info ${getopt_sources}
         heif_info.cc
         common.cc
         common.h)
+if(WIN32)
+    if(MSVC)
+        target_sources(heif-info PRIVATE utf8.manifest)
+    elseif(MINGW)
+        target_sources(heif-info PRIVATE utf8.rc)
+    endif()
+endif()
 target_link_libraries(heif-info heif)
 install(TARGETS heif-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 install(FILES heif-info.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
@@ -23,6 +30,13 @@ add_executable(heif-dec ${getopt_sources}
         heif_dec.cc
         common.cc
         common.h)
+if(WIN32)
+    if(MSVC)
+        target_sources(heif-dec PRIVATE utf8.manifest)
+    elseif(MINGW)
+        target_sources(heif-dec PRIVATE utf8.rc)
+    endif()
+endif()
 target_link_libraries(heif-dec PRIVATE heif heifio)
 target_include_directories(heif-dec PRIVATE ${libheif_SOURCE_DIR})
 install(TARGETS heif-dec RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -44,6 +58,13 @@ add_executable(heif-enc ${getopt_sources}
         common.h
         SAI_datafile.cc
         SAI_datafile.h)
+if(WIN32)
+    if(MSVC)
+        target_sources(heif-enc PRIVATE utf8.manifest)
+    elseif(MINGW)
+        target_sources(heif-enc PRIVATE utf8.rc)
+    endif()
+endif()
 target_link_libraries(heif-enc PRIVATE heif heifio)
 target_include_directories(heif-enc PRIVATE ${libheif_SOURCE_DIR})
 install(TARGETS heif-enc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -59,6 +80,13 @@ if (WITH_EXAMPLE_HEIF_THUMB AND PNG_FOUND)
             heif_thumbnailer.cc
             common.cc
             common.h)
+    if(WIN32)
+        if(MSVC)
+                target_sources(heif-thumbnailer PRIVATE utf8.manifest)
+        elseif(MINGW)
+                target_sources(heif-thumbnailer PRIVATE utf8.rc)
+        endif()
+    endif()
     target_link_libraries(heif-thumbnailer heif heifio)
     target_include_directories(heif-thumbnailer PRIVATE ${libheif_SOURCE_DIR})

@@ -78,6 +106,13 @@ if (WITH_EXAMPLE_HEIF_VIEW)
                 sdl.hh
                 common.cc
                 common.h)
+        if(WIN32)
+            if(MSVC)
+                target_sources(heif-view PRIVATE utf8.manifest)
+            elseif(MINGW)
+                target_sources(heif-view PRIVATE utf8.rc)
+            endif()
+        endif()
         target_link_libraries(heif-view PRIVATE heif SDL2::SDL2main SDL2::SDL2)
         install(TARGETS heif-view RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
     endif ()
@@ -88,4 +123,11 @@ add_executable(heif-test ${getopt_sources}
         heif_test.cc
         common.cc
         common.h)
+if(WIN32)
+    if(MSVC)
+        target_sources(heif-test PRIVATE utf8.manifest)
+    elseif(MINGW)
+        target_sources(heif-test PRIVATE utf8.rc)
+    endif()
+endif()
 target_link_libraries(heif-test heif)
diff --git a/examples/utf8.manifest b/examples/utf8.manifest
new file mode 100644
index 00000000..dab929e1
--- /dev/null
+++ b/examples/utf8.manifest
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
+  <application>
+    <windowsSettings>
+      <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
+    </windowsSettings>
+  </application>
+</assembly>
diff --git a/examples/utf8.rc b/examples/utf8.rc
new file mode 100644
index 00000000..62bdbdc3
--- /dev/null
+++ b/examples/utf8.rc
@@ -0,0 +1,3 @@
+#include <winuser.h>
+
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "utf8.manifest"