From c185e5ad6720aa5196fec849e1145cc492f0ed27 Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Tue, 24 Aug 2021 12:26:36 +0200 Subject: gnu: gobject-introspection: Don't build introspection data when cross-compiling. * gnu/packages/glib.scm (gobject-introspection)[arguments]<#:configure-flags>: Set gi_cross_use_prebuilt_gi to 'true'. (gobject-introspection)[arguments]<#:phases>{set-typelibs}: New phase, avoid undefined variable in "meson.build". --- gnu/packages/glib.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index cf54b3187a..829ef32221 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -410,8 +410,26 @@ functions for strings and common data structures.") "gobject-introspection-absolute-shlib-path.patch")))) (build-system meson-build-system) (arguments - `(#:phases + `(,@(if (%current-target-system) + `(#:configure-flags + '("-Dgi_cross_use_prebuilt_gi=true" + ;; Building introspection data requires running binaries + ;; for ‘host’ on ‘build’, so don't do that. + ;; + ;; TODO: it would be nice to have introspection data anyways + ;; as discussed here: https://issues.guix.gnu.org/50201#60. + "-Dbuild_introspection_data=false")) + '()) + #:phases (modify-phases %standard-phases + ,@(if (%current-target-system) + ;; 'typelibs' is undefined. + `((add-after 'unpack 'set-typelibs + (lambda _ + (substitute* "meson.build" + (("\\bsources: typelibs\\b") + "sources: []"))))) + '()) (add-after 'unpack 'do-not-use-/usr/bin/env (lambda _ (substitute* "tools/g-ir-tool-template.in" -- cgit v1.2.3