diff --git a/dev-libs/glib/glib-2.80.5-r1.ebuild b/dev-libs/glib/glib-2.80.5-r1.ebuild index fb26093bb4256..d25a34d1332e0 100644 --- a/dev-libs/glib/glib-2.80.5-r1.ebuild +++ b/dev-libs/glib/glib-2.80.5-r1.ebuild @@ -223,8 +223,25 @@ multilib_src_configure() { #esac #fi + _need_bootstrap_gi() { + if ! multilib_native_use introspection ; then + return 1 + fi + + if ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + return 0 + fi + + # Is the installed gobject-introspection usable? + if ! g-ir-scanner --version &> /dev/null ; then + return 0 + fi + + return 1 + } + # Build internal copy of gobject-introspection to avoid circular dependency (built for native abi only) - if multilib_native_use introspection && ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + if _need_bootstrap_gi ; then einfo "Bootstrapping gobject-introspection..." INTROSPECTION_BIN_DIR="${T}/bootstrap-gi-prefix/usr/bin" INTROSPECTION_LIB_DIR="${T}/bootstrap-gi-prefix/usr/$(get_libdir)" diff --git a/dev-libs/glib/glib-2.82.5.ebuild b/dev-libs/glib/glib-2.82.5.ebuild index b16e62189f6ac..947b237fc6d37 100644 --- a/dev-libs/glib/glib-2.82.5.ebuild +++ b/dev-libs/glib/glib-2.82.5.ebuild @@ -211,8 +211,25 @@ multilib_src_configure() { #esac #fi + _need_bootstrap_gi() { + if ! multilib_native_use introspection ; then + return 1 + fi + + if ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + return 0 + fi + + # Is the installed gobject-introspection usable? + if ! g-ir-scanner --version &> /dev/null ; then + return 0 + fi + + return 1 + } + # Build internal copy of gobject-introspection to avoid circular dependency (built for native abi only) - if multilib_native_use introspection && ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + if _need_bootstrap_gi ; then einfo "Bootstrapping gobject-introspection..." INTROSPECTION_BIN_DIR="${T}/bootstrap-gi-prefix/usr/bin" INTROSPECTION_LIB_DIR="${T}/bootstrap-gi-prefix/usr/$(get_libdir)" diff --git a/dev-libs/glib/glib-2.84.0.ebuild b/dev-libs/glib/glib-2.84.0.ebuild index 8ec0a9d7d48d3..b0868a11de271 100644 --- a/dev-libs/glib/glib-2.84.0.ebuild +++ b/dev-libs/glib/glib-2.84.0.ebuild @@ -215,8 +215,25 @@ multilib_src_configure() { #esac #fi + _need_bootstrap_gi() { + if ! multilib_native_use introspection ; then + return 1 + fi + + if ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + return 0 + fi + + # Is the installed gobject-introspection usable? + if ! g-ir-scanner --version &> /dev/null ; then + return 0 + fi + + return 1 + } + # Build internal copy of gobject-introspection to avoid circular dependency (built for native abi only) - if multilib_native_use introspection && ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + if _need_bootstrap_gi ; then einfo "Bootstrapping gobject-introspection..." INTROSPECTION_BIN_DIR="${T}/bootstrap-gi-prefix/usr/bin" INTROSPECTION_LIB_DIR="${T}/bootstrap-gi-prefix/usr/$(get_libdir)" diff --git a/dev-libs/glib/glib-2.84.1.ebuild b/dev-libs/glib/glib-2.84.1.ebuild index e5e5ff280c0f2..696388556f390 100644 --- a/dev-libs/glib/glib-2.84.1.ebuild +++ b/dev-libs/glib/glib-2.84.1.ebuild @@ -216,8 +216,25 @@ multilib_src_configure() { #esac #fi + _need_bootstrap_gi() { + if ! multilib_native_use introspection ; then + return 1 + fi + + if ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + return 0 + fi + + # Is the installed gobject-introspection usable? + if ! g-ir-scanner --version &> /dev/null ; then + return 0 + fi + + return 1 + } + # Build internal copy of gobject-introspection to avoid circular dependency (built for native abi only) - if multilib_native_use introspection && ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + if _need_bootstrap_gi ; then einfo "Bootstrapping gobject-introspection..." INTROSPECTION_BIN_DIR="${T}/bootstrap-gi-prefix/usr/bin" INTROSPECTION_LIB_DIR="${T}/bootstrap-gi-prefix/usr/$(get_libdir)"