summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gir/meson.build27
1 files changed, 24 insertions, 3 deletions
diff --git a/gir/meson.build b/gir/meson.build
index 09714cc1..102768e4 100644
--- a/gir/meson.build
+++ b/gir/meson.build
@@ -232,10 +232,31 @@ if not get_option('gi_cross_use_prebuilt_gi')
gir_giscanner_built_files = giscanner_built_files
endif
+print_argv = '''
+import sys
+for x in sys.argv[1:]:
+ print(x)
+'''
+
+# There are enough files in GLib and GObject to overflow the Windows cmd.exe
+# command-line length limit of 8191 characters, so write them into a
+# response file and pass that to g-ir-scanner instead
+glib_filelist = custom_target(
+ input: glib_files,
+ output: 'glib-files.txt',
+ capture: true,
+ command: [
+ python,
+ '-c',
+ print_argv,
+ '@INPUT@',
+ ],
+)
+
glib_gir = custom_target('gir-glib',
input: glib_files,
output: 'GLib-2.0.gir',
- depends: [gir_giscanner_pymod, glib_gir_dep],
+ depends: [gir_giscanner_pymod, glib_gir_dep, glib_filelist],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
@@ -247,8 +268,8 @@ glib_gir = custom_target('gir-glib',
'-D__G_I18N_LIB_H__',
'-DGETTEXT_PACKAGE=Dummy',
'--cflags-end',
- '@INPUT@',
- ]
+ '--filelist'
+ ] + glib_filelist,
)
gir_files += glib_gir