CMake: Fix introspection on Windows The list of source files to pass to g-ir-scanner is becoming too long for Windows, as Windows imposes a 8192-character limit for command lines, so we need to first transform that list into a listings file, and then use the --filelist option for g-ir-scanner to build the introspection files.
diff --git a/CMakeLists.txt b/CMakeLists.txt index 62e7945..dca71ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -646,6 +646,11 @@ endif () endforeach () + file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list) + foreach (s ${introspected_sources}) + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list "${s}\n") + endforeach () + # Finally, build the introspection files... add_custom_command( TARGET harfbuzz-gobject @@ -675,9 +680,9 @@ --library=harfbuzz -L${hb_libpath} ${extra_libs} - ${introspected_sources} + --filelist ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list -o ${hb_libpath}/HarfBuzz-0.0.gir - DEPENDS harfbuzz-gobject harfbuzz + DEPENDS harfbuzz-gobject harfbuzz ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list ) add_custom_command(