Dealing with GLib and gobject-introspection circular dependency

Starting with GLib 2.79.0 and gobject-introspection 1.79.0, there is a circular dependency between the two projects. GLib depends on the introspection tools for generating the introspection data of its library components and documentation, and gobject-introspection depends on GLib (mainly: libglib, libgobject, and libgmodule) for the introspection tools.

The recommendation for distributors is to stage the build in the following way:

  1. build GLib with -Dintrospection=disabled
  2. build gobject-introspection
  3. build GLib with -Dintrospection=enabled

You don’t need to rebuild gobject-introspection.

In order to resolve the circular dependency, the plan is the following:

  1. port all language bindings using libgirepository-1.0 to the new libgirepository-2.0 provided by GLib
  2. make libgirepository-1.0 optional in gobject-introspection
  3. make g-ir-scanner depend on a smaller, embedded copy of libglib

This work may not be ready for GNOME 46.

Is it possible to make a “joint” building with meson subproject?

No, it’s not possible.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.