gobject-introspection: Update to 1.84.0
Fixes "ModuleNotFoundError: No module named 'distutils.msvccompiler'" when updating Python version See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8878 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8717>
This commit is contained in:
parent
b11ccc5cdf
commit
b6d006f89c
@ -1,11 +1,11 @@
|
|||||||
[wrap-file]
|
[wrap-file]
|
||||||
directory = gobject-introspection-1.74.0
|
directory = gobject-introspection-1.84.0
|
||||||
source_url = https://download.gnome.org/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz
|
source_url = https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz
|
||||||
source_fallback_url = https://deb.debian.org/debian/pool/main/g/gobject-introspection/gobject-introspection_1.74.0.orig.tar.xz
|
source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz
|
||||||
source_filename = gobject-introspection-1.74.0.tar.xz
|
source_filename = gobject-introspection-1.84.0.tar.xz
|
||||||
source_hash = 347b3a719e68ba4c69ff2d57ee2689233ea8c07fc492205e573386779e42d653
|
source_hash = 945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779
|
||||||
wrapdb_version = 1.74.0-0
|
wrapdb_version = 1.84.0-0
|
||||||
diff_files = gobject-introspection-1.74.0/0001-Fix-gir-build-when-using-subprojects-dependencies.patch, gobject-introspection-1.74.0/0001-gir-stop-assuming-glib-source-and-build-dirs-using-v.patch, gobject-introspection-1.74.0/0001-build-Work-around-an-undocumented-GLib-variable-rena.patch
|
diff_files = gobject-introspection-1.84.0/0003-girepository-Load-typelibs-from-a-relocatable-prefix.patch, gobject-introspection-1.84.0/0004-build-Fix-b_vscrt-value-use-without-converting-it-to.patch, gobject-introspection-1.84.0/0006-tests-Fix-path-parsing-for-Windows.patch, gobject-introspection-1.84.0/0007-g-ir-tools-Support-reading-rspfiles-for-arguments.patch, gobject-introspection-1.84.0/0008-meson-Fix-fs.copyfile-semantics-breaking-GIR-build-w.patch, gobject-introspection-1.84.0/0009-giscanner-Deduplicate-arguments-and-use-response-fil.patch
|
||||||
|
|
||||||
[provide]
|
[provide]
|
||||||
dependency_names = gobject-introspection-1.0
|
dependency_names = gobject-introspection-1.0
|
||||||
|
@ -1,96 +0,0 @@
|
|||||||
From b4c454a75108bc31934d2d0be0141a2220bded84 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andoni Morales Alastruey <ylatuya@gmail.com>
|
|
||||||
Date: Tue, 18 Oct 2022 11:18:06 +0200
|
|
||||||
Subject: [PATCH] Fix gir build when using subprojects' dependencies
|
|
||||||
|
|
||||||
https://github.com/mesonbuild/meson/pull/10275 introduced
|
|
||||||
support in meson to use uninstalled .pc files in the meson-uninstalled
|
|
||||||
directory to resolve dependencies built with subprojects.
|
|
||||||
Replicate the same solution while all the custom_target
|
|
||||||
are migrated to gnome.generate_dir
|
|
||||||
---
|
|
||||||
gir/meson.build | 5 +++++
|
|
||||||
meson.build | 10 ++++++++++
|
|
||||||
tests/meson.build | 1 +
|
|
||||||
3 files changed, 16 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/gir/meson.build b/gir/meson.build
|
|
||||||
index da23e422..09714cc1 100644
|
|
||||||
--- a/gir/meson.build
|
|
||||||
+++ b/gir/meson.build
|
|
||||||
@@ -239,6 +239,7 @@ glib_gir = custom_target('gir-glib',
|
|
||||||
depend_files: gir_giscanner_built_files,
|
|
||||||
install: true,
|
|
||||||
install_dir: girdir,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: glib_command + [
|
|
||||||
'--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
|
|
||||||
'-DGLIB_COMPILATION',
|
|
||||||
@@ -307,6 +308,7 @@ gobject_gir = custom_target('gir-gobject',
|
|
||||||
depend_files: gir_giscanner_built_files,
|
|
||||||
install: true,
|
|
||||||
install_dir: girdir,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: gobject_command + [
|
|
||||||
'--include-uninstalled=' + glib_gir.full_path(),
|
|
||||||
'--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
|
|
||||||
@@ -360,6 +362,7 @@ gir_files += custom_target('gir-gmodule',
|
|
||||||
depend_files: gir_giscanner_built_files,
|
|
||||||
install: true,
|
|
||||||
install_dir: girdir,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: gmodule_command + [
|
|
||||||
'--include-uninstalled=' + glib_gir.full_path(),
|
|
||||||
'--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
|
|
||||||
@@ -456,6 +459,7 @@ gio_gir = custom_target('gir-gio',
|
|
||||||
depend_files: gir_giscanner_built_files,
|
|
||||||
install: true,
|
|
||||||
install_dir: girdir,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: gio_command + [
|
|
||||||
'--include-uninstalled=' + gobject_gir.full_path(),
|
|
||||||
'--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
|
|
||||||
@@ -493,6 +497,7 @@ gir_files += custom_target('gir-girepository',
|
|
||||||
depend_files: gir_giscanner_built_files,
|
|
||||||
install: true,
|
|
||||||
install_dir: girdir,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: girepository_command + [
|
|
||||||
'--include-uninstalled=' + gobject_gir.full_path(),
|
|
||||||
'--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
|
|
||||||
diff --git a/meson.build b/meson.build
|
|
||||||
index ca9c2b22..28fbf7fe 100644
|
|
||||||
--- a/meson.build
|
|
||||||
+++ b/meson.build
|
|
||||||
@@ -151,6 +151,16 @@ if not (host_system == 'darwin' and host_arch == 'aarch64' or
|
|
||||||
config.set('LEGACY_GIRFFI_FREE', 1)
|
|
||||||
endif
|
|
||||||
|
|
||||||
+# Replicate https://github.com/mesonbuild/meson/pull/10275 setting
|
|
||||||
+# the correct env in the custom_target
|
|
||||||
+pkg_config = find_program('pkg-config')
|
|
||||||
+g_ir_scanner_env = environment()
|
|
||||||
+dep_type = glib_dep.type_name()
|
|
||||||
+if dep_type == 'internal'
|
|
||||||
+ g_ir_scanner_env.append('PKG_CONFIG_PATH', meson.global_build_root() + '/meson-uninstalled')
|
|
||||||
+ g_ir_scanner_env.set('PKG_CONFIG', pkg_config.full_path())
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
configure_file(
|
|
||||||
configuration: config,
|
|
||||||
output: 'config.h'
|
|
||||||
diff --git a/tests/meson.build b/tests/meson.build
|
|
||||||
index abb51f58..22b402b0 100644
|
|
||||||
--- a/tests/meson.build
|
|
||||||
+++ b/tests/meson.build
|
|
||||||
@@ -56,6 +56,7 @@ test_gircompiler = find_program('g-ir-compiler', native: false, required : false
|
|
||||||
test_everything_files = custom_target('everything',
|
|
||||||
output: ['everything.h', 'everything.c'],
|
|
||||||
depends: typelibs,
|
|
||||||
+ env: g_ir_scanner_env,
|
|
||||||
command: [
|
|
||||||
test_girscanner,
|
|
||||||
'--quiet',
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 3163d96f47a62a20a343eb7af9d3c2931563a63d Mon Sep 17 00:00:00 2001
|
|
||||||
From: "L. E. Segovia" <amy@centricular.com>
|
|
||||||
Date: Sat, 24 Feb 2024 14:14:19 -0300
|
|
||||||
Subject: [PATCH] build: Work around an undocumented GLib variable renaming
|
|
||||||
|
|
||||||
See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3892
|
|
||||||
---
|
|
||||||
gir/meson.build | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gir/meson.build b/gir/meson.build
|
|
||||||
index b732d24d..3a016831 100644
|
|
||||||
--- a/gir/meson.build
|
|
||||||
+++ b/gir/meson.build
|
|
||||||
@@ -155,7 +155,9 @@ elif dep_type == 'internal'
|
|
||||||
|
|
||||||
if giounix_dep.found()
|
|
||||||
glib_files += [
|
|
||||||
- glib_subproject.get_variable('glib_unix_h')
|
|
||||||
+ # Variable was renamed in 2.79.2
|
|
||||||
+ # https://gitlab.gnome.org/GNOME/glib/-/commit/1f9e44d6232c3e96caa8a96d9b1cc2c65cf5848c
|
|
||||||
+ glib_subproject.get_variable('glib_unix_headers')
|
|
||||||
]
|
|
||||||
endif
|
|
||||||
|
|
||||||
--
|
|
||||||
2.47.1
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From dc33cdc1f9210d5f284bf115c4c66b55b38f79b9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andoni Morales Alastruey <amorales@fluendo.com>
|
|
||||||
Date: Wed, 19 Jul 2023 15:21:42 +0200
|
|
||||||
Subject: [PATCH] gir: stop assuming glib source and build dirs using variables
|
|
||||||
|
|
||||||
---
|
|
||||||
gir/meson.build | 5 ++---
|
|
||||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gir/meson.build b/gir/meson.build
|
|
||||||
index 09714cc..59e03d6 100644
|
|
||||||
--- a/gir/meson.build
|
|
||||||
+++ b/gir/meson.build
|
|
||||||
@@ -134,14 +134,13 @@ elif dep_type == 'internal'
|
|
||||||
# XXX: This is a pile of hacks to allow gobject-introspection to parse the
|
|
||||||
# GLib source files when GLib is used as a subproject
|
|
||||||
# Assumes that the builddir layout is 'mirror'
|
|
||||||
- # Assumes the location of the glib subproject dir
|
|
||||||
# We should add API to meson to get a specific file from a specific
|
|
||||||
# subproject
|
|
||||||
# We know exactly what headers will be installed, so just fetch that
|
|
||||||
glib_subproject = subproject('glib')
|
|
||||||
|
|
||||||
- glibproj_sourcedir = join_paths(meson.global_source_root(), subprojdir, 'glib')
|
|
||||||
- glibproj_builddir = join_paths(meson.global_build_root(), subprojdir, 'glib')
|
|
||||||
+ glibproj_sourcedir = glib_subproject.get_variable('glib_source_dir', join_paths(meson.global_source_root(), subprojdir, 'glib'))
|
|
||||||
+ glibproj_builddir = glib_subproject.get_variable('glib_build_dir', join_paths(meson.global_build_root(), subprojdir, 'glib'))
|
|
||||||
|
|
||||||
glib_files += glib_subproject.get_variable('glib_types_h')
|
|
||||||
|
|
||||||
--
|
|
||||||
2.39.2
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From 079cd66c77d53cdf5007002bd225658e221715c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nirbheek Chauhan <nirbheek@centricular.com>
|
||||||
|
Date: Wed, 12 Feb 2025 20:32:59 +0530
|
||||||
|
Subject: [PATCH 3/9] girepository: Load typelibs from a relocatable prefix on
|
||||||
|
macOS
|
||||||
|
|
||||||
|
This is already relocatable on Windows.
|
||||||
|
---
|
||||||
|
girepository/girepository.c | 27 +++++++++++++++++++++++++++
|
||||||
|
1 file changed, 27 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/girepository/girepository.c b/girepository/girepository.c
|
||||||
|
index 12eaf366..ca47cd55 100644
|
||||||
|
--- a/girepository/girepository.c
|
||||||
|
+++ b/girepository/girepository.c
|
||||||
|
@@ -125,6 +125,33 @@ DllMain (HINSTANCE hinstDLL,
|
||||||
|
g_build_filename (g_win32_get_package_installation_directory_of_module (girepository_dll), \
|
||||||
|
"lib", \
|
||||||
|
NULL)
|
||||||
|
+#elif defined(__APPLE__)
|
||||||
|
+
|
||||||
|
+#include <dlfcn.h>
|
||||||
|
+
|
||||||
|
+#undef GOBJECT_INTROSPECTION_LIBDIR
|
||||||
|
+#define GOBJECT_INTROSPECTION_LIBDIR _get_portable_libdir ()
|
||||||
|
+
|
||||||
|
+static char*
|
||||||
|
+_get_portable_libdir (void)
|
||||||
|
+{
|
||||||
|
+ char *path, *p;
|
||||||
|
+ Dl_info info;
|
||||||
|
+
|
||||||
|
+ /* Get the location of the current dylib */
|
||||||
|
+ if (!dladdr (_get_portable_libdir, &info))
|
||||||
|
+ return NULL;
|
||||||
|
+ path = strdup (info.dli_fname);
|
||||||
|
+
|
||||||
|
+ /* Get dylib directory: PREFIX/lib */
|
||||||
|
+ if ((p = strrchr (path, '/')) == NULL) {
|
||||||
|
+ free (path);
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+ *p = '\0';
|
||||||
|
+
|
||||||
|
+ return path;
|
||||||
|
+}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
From a0b42aa4218bea84de902065f95d0e63bdb1c0d2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Wed, 4 Jun 2025 18:28:24 -0300
|
||||||
|
Subject: [PATCH 4/9] build: Fix b_vscrt value use without converting it to a
|
||||||
|
flag
|
||||||
|
|
||||||
|
---
|
||||||
|
meson.build | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index 7b8bf1c3..8e944824 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -96,7 +96,7 @@ if cc.get_argument_syntax() == 'msvc'
|
||||||
|
msvc_crt_cflag = b_vscrt == 'static_from_buildtype' ? '/MT' : '/MD'
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
- msvc_crt_cflag = b_vscrt
|
||||||
|
+ msvc_crt_cflag = '/' + b_vscrt
|
||||||
|
endif
|
||||||
|
extra_giscanner_cflags += msvc_crt_cflag
|
||||||
|
extra_giscanner_args = ['--cflags-begin'] + extra_giscanner_cflags + ['--cflags-end']
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
From 95125183cd7d45c37d49147ee913f06a603c871a Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Thu, 26 Jun 2025 13:22:14 -0300
|
||||||
|
Subject: [PATCH 6/9] tests: Fix path parsing for Windows
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/meson.build | 2 +-
|
||||||
|
tests/scanner/meson.build | 4 ++--
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/meson.build b/tests/meson.build
|
||||||
|
index e82d79f9..7e4b9887 100644
|
||||||
|
--- a/tests/meson.build
|
||||||
|
+++ b/tests/meson.build
|
||||||
|
@@ -198,7 +198,7 @@ if (glib_dep.type_name() == 'pkgconfig' and
|
||||||
|
# FIXME: Remove? Those tests doesn't actually do anything for typelibs ...
|
||||||
|
foreach typelib : test_typelibs
|
||||||
|
gi_tester = files('gi-tester')
|
||||||
|
- typelib_name = typelib.full_path().split('/')[-1]
|
||||||
|
+ typelib_name = typelib.full_path().replace('\\', '/').split('/')[-1]
|
||||||
|
test(
|
||||||
|
'gi-tester' + typelib_name,
|
||||||
|
python,
|
||||||
|
diff --git a/tests/scanner/meson.build b/tests/scanner/meson.build
|
||||||
|
index 5634ee4f..402547dc 100644
|
||||||
|
--- a/tests/scanner/meson.build
|
||||||
|
+++ b/tests/scanner/meson.build
|
||||||
|
@@ -587,7 +587,7 @@ endif
|
||||||
|
gi_tester = files(join_paths('..', 'gi-tester'))
|
||||||
|
|
||||||
|
foreach gir : test_girs
|
||||||
|
- gir_name = gir.full_path().split('/')[-1]
|
||||||
|
+ gir_name = gir.full_path().replace('\\', '/').split('/')[-1]
|
||||||
|
test(
|
||||||
|
'gi-tester-' + gir_name,
|
||||||
|
python,
|
||||||
|
@@ -663,7 +663,7 @@ if has_girdoctool and glib_dep.type_name() == 'pkgconfig'
|
||||||
|
endif
|
||||||
|
|
||||||
|
foreach typelib : test_typelibs
|
||||||
|
- typelib_name = typelib.full_path().split('/')[-1]
|
||||||
|
+ typelib_name = typelib.full_path().replace('\\', '/').split('/')[-1]
|
||||||
|
test(
|
||||||
|
'gi-tester-' + typelib_name,
|
||||||
|
python,
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
From 67f5fc047ccdbfcc3396b42fba54e9f06db93382 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Thu, 5 Jun 2025 12:25:14 -0300
|
||||||
|
Subject: [PATCH 7/9] g-ir-tools: Support reading @rspfiles for arguments
|
||||||
|
|
||||||
|
This is needed on Windows, where the argument list can exceed the
|
||||||
|
maximum command-line length when many cflags are being passed.
|
||||||
|
|
||||||
|
It is easily reproducible on GStreamer CI when g-ir-scanner
|
||||||
|
is being pulled from a wrap.
|
||||||
|
|
||||||
|
See https://gitlab.gnome.org/GNOME/glib/-/commit/17316b2c16cf17ae9692ed2733f776f1082e74e5
|
||||||
|
|
||||||
|
(cherry picked from commit b0daeaa67828a61af250b438dd918c01aad8457e)
|
||||||
|
---
|
||||||
|
tools/g-ir-tool-template.in | 32 +++++++++++++++++++++++++++++++-
|
||||||
|
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in
|
||||||
|
index 469af0ca..648c9abc 100755
|
||||||
|
--- a/tools/g-ir-tool-template.in
|
||||||
|
+++ b/tools/g-ir-tool-template.in
|
||||||
|
@@ -100,5 +100,35 @@ from giscanner.utils import dll_dirs
|
||||||
|
dll_dirs = dll_dirs()
|
||||||
|
dll_dirs.add_dll_dirs(['gio-2.0'])
|
||||||
|
|
||||||
|
+def get_rspfile_args(rspfile):
|
||||||
|
+ '''
|
||||||
|
+ Response files are useful on Windows where there is a command-line character
|
||||||
|
+ limit of 8191 because when passing sources as arguments to glib-mkenums this
|
||||||
|
+ limit can be exceeded in large codebases.
|
||||||
|
+
|
||||||
|
+ There is no specification for response files and each tool that supports it
|
||||||
|
+ generally writes them out in slightly different ways, but some sources are:
|
||||||
|
+ https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files
|
||||||
|
+ https://docs.microsoft.com/en-us/windows/desktop/midl/the-response-file-command
|
||||||
|
+ '''
|
||||||
|
+ import shlex
|
||||||
|
+ if not os.path.isfile(rspfile):
|
||||||
|
+ sys.exit('Response file {!r} does not exist'.format(rspfile))
|
||||||
|
+ try:
|
||||||
|
+ with open(rspfile, 'r') as f:
|
||||||
|
+ cmdline = f.read()
|
||||||
|
+ except OSError as e:
|
||||||
|
+ sys.exit('Response file {!r} could not be read: {}'
|
||||||
|
+ .format(rspfile, e.strerror))
|
||||||
|
+ return shlex.split(cmdline)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+# Support reading an rspfile of the form @filename which contains the args
|
||||||
|
+# to be parsed
|
||||||
|
+if sys.argv[-1].startswith('@'):
|
||||||
|
+ args = sys.argv[0:-1] + get_rspfile_args(sys.argv[-1][1:])
|
||||||
|
+else:
|
||||||
|
+ args = sys.argv
|
||||||
|
+
|
||||||
|
from giscanner.@TOOL_MODULE@ import @TOOL_FUNCTION@
|
||||||
|
-sys.exit(@TOOL_FUNCTION@(sys.argv))
|
||||||
|
+sys.exit(@TOOL_FUNCTION@(args))
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
From c699e4a4106fdce2dccef5af15a2e7a54ed458fb Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Thu, 26 Jun 2025 22:36:39 -0300
|
||||||
|
Subject: [PATCH 8/9] meson: Fix fs.copyfile semantics breaking GIR build with
|
||||||
|
Ninja 1.12+
|
||||||
|
|
||||||
|
Unlike configure_file, fs.copyfile runs at build time. This, along
|
||||||
|
with Ninja 1.12+'s stricter dependency semantics, means that all
|
||||||
|
GIR files built by g-i may not be available for other subprojects
|
||||||
|
in a subproject build.
|
||||||
|
|
||||||
|
This breaks harfbuzz wrap's GIR build inside GStreamer.
|
||||||
|
|
||||||
|
See https://github.com/ninja-build/ninja/releases/tag/v1.12.0
|
||||||
|
|
||||||
|
See https://mesonbuild.com/Release-notes-for-0-64-0.html#fscopyfile-to-replace-configure_filecopy-true
|
||||||
|
---
|
||||||
|
gir/meson.build | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gir/meson.build b/gir/meson.build
|
||||||
|
index a23c0a91..792faa73 100644
|
||||||
|
--- a/gir/meson.build
|
||||||
|
+++ b/gir/meson.build
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-gir_files = [
|
||||||
|
+base_gir_files = [
|
||||||
|
{'name': 'DBus', 'file': 'DBus-1.0.gir' },
|
||||||
|
{'name': 'DBus-GLib', 'file': 'DBusGLib-1.0.gir' },
|
||||||
|
{'name': 'fontconfig', 'file': 'fontconfig-2.0.gir' },
|
||||||
|
@@ -18,8 +18,9 @@ uninstalled_gir_files = []
|
||||||
|
# Copy gir files to build directory to have them all in a single place.
|
||||||
|
# This is needed when gobject-introspection is a subproject because Meson
|
||||||
|
# will add --includedir pointing to build directory automatically.
|
||||||
|
-foreach gir: gir_files
|
||||||
|
- fs.copyfile(gir.get('file'))
|
||||||
|
+gir_files = []
|
||||||
|
+foreach gir: base_gir_files
|
||||||
|
+ gir_files += [{'name': gir.get('name'), 'file': fs.copyfile(gir.get('file'))}]
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
cairo_conf = configuration_data()
|
||||||
|
@@ -49,7 +50,7 @@ gir_files += [{'name': 'cairo', 'file': cairo_gir}]
|
||||||
|
|
||||||
|
typelibdir = join_paths(get_option('libdir'), 'girepository-1.0')
|
||||||
|
installed_gir_files = []
|
||||||
|
-foreach gir: gir_files
|
||||||
|
+foreach gir: base_gir_files
|
||||||
|
installed_gir_files += gir.get('file')
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
From d664384d9c1f3ff85910035b08feb1204f3e48c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Fri, 27 Jun 2025 00:20:23 -0300
|
||||||
|
Subject: [PATCH 9/9] giscanner: Deduplicate arguments and use response files
|
||||||
|
for MSVC
|
||||||
|
|
||||||
|
Alleviates GStreamer CI crashing because deeply nested GIR modules
|
||||||
|
can exhaust CreateProcessW because of the number of duplicated flags
|
||||||
|
(mainly include flags), and distutils has no provision for it.
|
||||||
|
---
|
||||||
|
giscanner/ccompiler.py | 23 ++++++++++++++++++++++-
|
||||||
|
1 file changed, 22 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
|
||||||
|
index 9c27cba7..9e2e2aed 100644
|
||||||
|
--- a/giscanner/ccompiler.py
|
||||||
|
+++ b/giscanner/ccompiler.py
|
||||||
|
@@ -390,11 +390,32 @@ class CCompiler(object):
|
||||||
|
includes.extend(include_paths)
|
||||||
|
extra_postargs.extend(extra_args)
|
||||||
|
|
||||||
|
- return self.compiler.compile(sources=source,
|
||||||
|
+ tmp = None
|
||||||
|
+
|
||||||
|
+ rsp_len = sum(len(i) + 1 for i in list(*source) + extra_postargs) + sum(len(i) + 3 for i in macros + includes)
|
||||||
|
+
|
||||||
|
+ # Serialize to a response file if CommandLineToArgW etc.
|
||||||
|
+ # can get overloaded. The limit is 32k but e.g. GStreamer's CI
|
||||||
|
+ # can pile up pretty quickly, so let's follow Meson here.
|
||||||
|
+ if self.check_is_msvc() and rsp_len >= 8192:
|
||||||
|
+ # There seems to be no provision for deduplication in higher layers
|
||||||
|
+ includes = list(set(includes))
|
||||||
|
+ macros = list(set(macros))
|
||||||
|
+ if extra_postargs:
|
||||||
|
+ tmp = tempfile.mktemp()
|
||||||
|
+ with open(tmp, 'w') as f:
|
||||||
|
+ f.write(' '.join(extra_postargs))
|
||||||
|
+ extra_postargs = [f'@{tmp}']
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ return self.compiler.compile(sources=source,
|
||||||
|
macros=macros,
|
||||||
|
include_dirs=includes,
|
||||||
|
extra_postargs=extra_postargs,
|
||||||
|
output_dir=os.path.abspath(os.sep))
|
||||||
|
+ finally:
|
||||||
|
+ if tmp and not utils.have_debug_flag('save-temps'):
|
||||||
|
+ os.unlink(tmp)
|
||||||
|
|
||||||
|
def resolve_windows_libs(self, libraries, options):
|
||||||
|
args = []
|
||||||
|
--
|
||||||
|
2.47.0.windows.2
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user