diff --git a/girepository/introspection/meson.build b/girepository/introspection/meson.build index f3ee28f09..0b11e7431 100644 --- a/girepository/introspection/meson.build +++ b/girepository/introspection/meson.build @@ -7,6 +7,16 @@ gi_gen_shared_sources = [ gmodule_visibility_h, ] +gi_gen_shared_dependencies = [ + # libgirepository is not needed by most of the modules below, but it is needed + # by the g-ir-scanner generated dumper program. If we don’t explicitly include + # the local version of it here, Meson will implicitly link against it anyway, + # and that might pull in a different version, or try to link against a + # half-built local version as the build ordering dependency tree won’t + # reflect this relationship. + libgirepository_dep, +] + gi_gen_env_variables = environment() if get_option('b_sanitize') != 'none' @@ -49,7 +59,8 @@ glib_gir = gnome.generate_gir(libglib, export_packages: 'glib-2.0', header: 'glib.h', install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libgobject_dep, ], env: gi_gen_env_variables, @@ -76,7 +87,8 @@ if host_system == 'windows' header: 'glib.h', includes: [ glib_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libgobject_dep, ], env: gi_gen_env_variables, @@ -104,7 +116,8 @@ else header: 'glib.h', includes: [ glib_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libgobject_dep, ], env: gi_gen_env_variables, @@ -137,6 +150,8 @@ gobject_gir = gnome.generate_gir(libgobject, header: 'glib-object.h', includes: [ glib_gir[0] ], install: true, + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies, env: gi_gen_env_variables, extra_args: gir_args + [ '-DGOBJECT_COMPILATION', @@ -162,7 +177,8 @@ gmodule_gir = gnome.generate_gir(libgmodule, header: 'gmodule.h', includes: [ glib_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libglib_dep, ], env: gi_gen_env_variables, @@ -224,7 +240,8 @@ gio_gir = gnome.generate_gir(libgio, header: 'gio/gio.h', includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libglib_dep, libgobject_dep, libgmodule_dep, @@ -249,7 +266,8 @@ if host_system == 'windows' header: 'gio/gio.h', includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libglib_dep, libgobject_dep, libgmodule_dep, @@ -278,7 +296,8 @@ else header: 'gio/gio.h', includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ], install: true, - dependencies: [ + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ libglib_dep, libgobject_dep, libgmodule_dep, @@ -316,7 +335,13 @@ girepository_gir = gnome.generate_gir(libgirepository, header: 'girepository/girepository.h', includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ], install: true, - dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ], + install_dir_gir: glib_girdir, + dependencies: gi_gen_shared_dependencies + [ + libglib_dep, + libgobject_dep, + libgmodule_dep, + libgio_dep, + ], extra_args: gir_args + libgirepository_gir_args, )