Generate introspection data

Currently, the introspection data for GLib and its sub-libraries is
generated by gobject-introspection, to avoid the cyclic dependency
between the two projects.

Since gobject-introspection is generally available on installed systems,
we can check for its presence, and generate the introspection data
directly from GLib.

This does introduce a cyclic dependency, which is why it's possible to
build GLib without introspection, then build gobject-introspection, and
finally rebuild GLib.

By having introspection data available during the GLib build, we can do
things like generating documentation; validating newly added API; and
close the loop between adding new API and it becoming available to non-C
consumers of the C ABI (i.e. language bindings).
This commit is contained in:
Emmanuele Bassi
2023-10-13 12:57:57 +01:00
committed by Philip Withnall
parent 6e771f0e84
commit fe32c3f5c5
6 changed files with 154 additions and 3 deletions

View File

@@ -125,3 +125,8 @@ option('multiarch',
type : 'boolean',
value : false,
description : 'Install some helper executables in per-architecture locations')
option('introspection',
type: 'feature',
value: 'auto',
description: 'Enable generating introspection data (requires gobject-introspection)')