diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..83ab6981ae32 --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb @@ -0,0 +1,51 @@ +easyblock = 'MesonNinja' + +name = 'GObject-Introspection' +version = '1.80.1' + +homepage = 'https://gi.readthedocs.io/en/latest/' +description = """GObject introspection is a middleware layer between C libraries + (using GObject) and language bindings. The C library can be scanned at + compile time and generate a metadata file, in addition to the actual + native C library. Then at runtime, language bindings can read this + metadata and automatically provide bindings to call into the C library.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +patches = ['GObject-Introspection-1.80.1_install-GLib-GIR-files.patch'] +checksums = [ + {'gobject-introspection-1.80.1.tar.xz': 'a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8'}, + {'GObject-Introspection-1.80.1_install-GLib-GIR-files.patch': + 'c1909f1b7fd30784ae789ac0b5e45e0ca3dd2456890b864efa86a2f8c2e563aa'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.2.0'), + ('CMake', '3.29.3'), + ('Meson', '1.4.0'), + ('Ninja', '1.12.1'), + ('Python', '3.12.3'), + ('Bison', '3.8.2'), + ('cairo', '1.18.0'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('GLib', '2.80.4'), + ('libffi', '3.4.5'), + ('util-linux', '2.40'), +] + +preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " +configopts = "-Dcairo=enabled" + +sanity_check_paths = { + 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + + ['lib/libgirepository-1.0.' + SHLIB_EXT], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch new file mode 100644 index 000000000000..5c09ded1cb20 --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch @@ -0,0 +1,52 @@ +This reverts a commit from upstream +> build: Do not install generated GLib GIR files +> +> GLib 2.79 ships its own introspection data. + +However GObject-Introspection requires (optionally) Cairo, which requires GLib +which requires GLib-Introspection for generating the introspection data. + +So there is a cyclic dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 + +Author: Alexander Grund (TU Dresden) + +diff --git a/gir/meson.build b/gir/meson.build +index 3a016831..312aa886 100644 +--- a/gir/meson.build ++++ b/gir/meson.build +@@ -241,6 +241,8 @@ glib_gir = custom_target('gir-glib', + output: 'GLib-2.0.gir', + depends: [gir_giscanner_pymod, glib_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: glib_command + [ + '--cflags-begin'] + glib_includes + extra_giscanner_cflags + [ +@@ -308,6 +310,8 @@ gobject_gir = custom_target('gir-gobject', + output: 'GObject-2.0.gir', + depends: [glib_gir, gir_giscanner_pymod, gobject_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gobject_command + [ + '--include-uninstalled=' + glib_gir.full_path(), +@@ -360,6 +364,8 @@ uninstalled_gir_files += custom_target('gir-gmodule', + output: 'GModule-2.0.gir', + depends: [glib_gir, gir_giscanner_pymod, gmodule_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gmodule_command + [ + '--include-uninstalled=' + glib_gir.full_path(), +@@ -455,6 +461,8 @@ gio_gir = custom_target('gir-gio', + output: 'Gio-2.0.gir', + depends: [gobject_gir, gir_giscanner_pymod, gio_gir_dep, gdump], + depend_files: gir_giscanner_built_files, ++ install: true, ++ install_dir: girdir, + env: g_ir_scanner_env, + command: gio_command + [ + '--include-uninstalled=' + gobject_gir.full_path(),