build: Move gir generation to an introspection folder

Generating gir and typelib files has inter-dependencies that may depend
on other elements.

For example, glib requires gobject and gdump generated files require
gmodule, so we've a cyclic dependency because gmodule requires gobject,
that requires glib.

To prevent this, let's just generate the introspection files at once in
a different meson file so that we don't have to deal with this.

As per this we could even revert commit fa37ab6d0 since gio is now
compiled before the gir files.
This commit is contained in:
Marco Trevisan (Treviño)
2023-12-20 03:46:33 +01:00
parent 385ae1b964
commit 9c4ff01feb
7 changed files with 152 additions and 134 deletions

View File

@@ -170,59 +170,6 @@ libgobject_dep = declare_dependency(link_with : libgobject,
)
meson.override_dependency('gobject-2.0', libgobject_dep)
if enable_gir
# We generate GLib-2.0 here, as we need various GTypes
glib_gir = gnome.generate_gir(libglib,
sources: [
glibconfig_h,
gversionmacros_h,
glib_visibility_h,
glib_headers,
glib_deprecated_headers,
glib_sub_headers,
glib_enumtypes_h,
glib_types_h,
glib_deprecated_sources,
glib_sources,
],
namespace: 'GLib',
nsversion: '2.0',
identifier_prefix: 'G',
symbol_prefix: 'g',
export_packages: 'glib-2.0',
header: 'glib.h',
install: true,
dependencies: libgobject_dep,
extra_args: gir_args + [
'-DGLIB_COMPILATION',
'-DGETTEXT_PACKAGE="dummy"',
'--symbol-prefix=glib',
'--library-path=' + meson.current_build_dir(),
'--library=gobject-2.0',
],
)
gobject_gir = gnome.generate_gir(libgobject,
sources: [
gobject_visibility_h,
gobject_install_headers,
gobject_sources,
],
namespace: 'GObject',
nsversion: '2.0',
identifier_prefix: 'G',
symbol_prefix: 'g',
export_packages: 'gobject-2.0',
header: 'glib-object.h',
includes: [ glib_gir[0] ],
install: true,
extra_args: gir_args + [
'-DGOBJECT_COMPILATION',
'--symbol-prefix=gobject',
],
)
endif
gobject_query = executable('gobject-query', 'gobject-query.c',
install : true,
install_tag : 'bin-devel',