diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap index a865af4232..7023da82d3 100644 --- a/subprojects/glib.wrap +++ b/subprojects/glib.wrap @@ -5,6 +5,7 @@ source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/glib/2.74/glib-2. source_filename = glib-2.74.1.tar.xz source_hash = 0ab981618d1db47845e56417b0d7c123f81a3427b2b9c93f5a46ff5bbb964964 wrapdb_version = 2.74.1-1 +diff_files = glib-2.74.1/0001-meson-help-gobject-introspection-locate-source-and-b.patch [provide] dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0 diff --git a/subprojects/gobject-introspection.wrap b/subprojects/gobject-introspection.wrap new file mode 100644 index 0000000000..96c0f0aa0d --- /dev/null +++ b/subprojects/gobject-introspection.wrap @@ -0,0 +1,12 @@ +[wrap-file] +directory = gobject-introspection-1.74.0 +source_url = https://download.gnome.org/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz +source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz +source_filename = gobject-introspection-1.74.0.tar.xz +source_hash = 347b3a719e68ba4c69ff2d57ee2689233ea8c07fc492205e573386779e42d653 +wrapdb_version = 1.74.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 + +[provide] +dependency_names = gobject-introspection-1.0 +program_names = g-ir-scanner, g-ir-compiler, g-ir-annotation-tool, g-ir-doc-tool, g-ir-inspect, g-ir-generate diff --git a/subprojects/packagefiles/glib-2.74.1/0001-meson-help-gobject-introspection-locate-source-and-b.patch b/subprojects/packagefiles/glib-2.74.1/0001-meson-help-gobject-introspection-locate-source-and-b.patch new file mode 100644 index 0000000000..cc518de004 --- /dev/null +++ b/subprojects/packagefiles/glib-2.74.1/0001-meson-help-gobject-introspection-locate-source-and-b.patch @@ -0,0 +1,33 @@ +From 783bf28650ec581c3d225821d13dad5ec3cf6c24 Mon Sep 17 00:00:00 2001 +From: Andoni Morales Alastruey +Date: Wed, 19 Jul 2023 17:14:02 +0200 +Subject: [PATCH] meson: help gobject-introspection locate source and build + dirs + +gobject-introspection is currently assuming glib subproject +is in unversioned, but gstreamer uses a versioned directory, eg: +subprojects/glib-2.74.1 instead of subprojects/glib +--- + meson.build | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/meson.build b/meson.build +index 43bb468..3e4dd96 100644 +--- a/meson.build ++++ b/meson.build +@@ -54,6 +54,12 @@ if host_system == 'darwin' + endif + endif + ++# When building glib and gobject-introspection with subprojects, gobject-introspection ++# requires to know to lnow the path of the sources and the build directory. ++# We provide it here with a variable. ++glib_source_dir = meson.current_source_dir() ++glib_build_dir = meson.current_build_dir() ++ + glib_version = meson.project_version() + glib_api_version = '2.0' + version_arr = glib_version.split('.') +-- +2.40.0.windows.1 + diff --git a/subprojects/packagefiles/gobject-introspection-1.74.0/0001-Fix-gir-build-when-using-subprojects-dependencies.patch b/subprojects/packagefiles/gobject-introspection-1.74.0/0001-Fix-gir-build-when-using-subprojects-dependencies.patch new file mode 100644 index 0000000000..979bd00756 --- /dev/null +++ b/subprojects/packagefiles/gobject-introspection-1.74.0/0001-Fix-gir-build-when-using-subprojects-dependencies.patch @@ -0,0 +1,96 @@ +From b4c454a75108bc31934d2d0be0141a2220bded84 Mon Sep 17 00:00:00 2001 +From: Andoni Morales Alastruey +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 + diff --git a/subprojects/packagefiles/gobject-introspection-1.74.0/0001-gir-stop-assuming-glib-source-and-build-dirs-using-v.patch b/subprojects/packagefiles/gobject-introspection-1.74.0/0001-gir-stop-assuming-glib-source-and-build-dirs-using-v.patch new file mode 100644 index 0000000000..d29a7b62b0 --- /dev/null +++ b/subprojects/packagefiles/gobject-introspection-1.74.0/0001-gir-stop-assuming-glib-source-and-build-dirs-using-v.patch @@ -0,0 +1,32 @@ +From dc33cdc1f9210d5f284bf115c4c66b55b38f79b9 Mon Sep 17 00:00:00 2001 +From: Andoni Morales Alastruey +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