Meson Integration

Support for generating GObject introspection data is included in Meson directly and accessible through the gnome.generate_gir() function. See the meson documentation for details.

For some real examples, see the meson build definitions of various GNOME modules:

Pango:

https://gitlab.gnome.org/GNOME/pango/blob/master/pango/meson.build

pango_gir = gnome.generate_gir(
  libpango,
  sources: pango_sources + pango_headers + [ pango_enum_h ],
  namespace: 'Pango',
  nsversion: pango_api_version,
  identifier_prefix: 'Pango',
  symbol_prefix: 'pango',
  export_packages: 'pango',
  includes: [ 'GObject-2.0', 'cairo-1.0', ],
  header: 'pango/pango.h',
  install: true,
  extra_args: gir_args,
)
json-glib:

https://gitlab.gnome.org/GNOME/json-glib/blob/master/json-glib/meson.build

json_glib_gir = gnome.generate_gir(
  json_lib,
  sources: source_c + source_h + json_glib_enums + [ json_version_h ],
  namespace: 'Json',
  nsversion: json_api_version,
  identifier_prefix: 'Json',
  symbol_prefix: 'json',
  export_packages: json_api_name,
  includes: [ 'GObject-2.0', 'Gio-2.0', ],
  header: 'json-glib/json-glib.h',
  install: true,
  extra_args: gir_args,
)