config BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
	bool
	default y
	depends on BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS
	# gobject-introspection programs cause a hang of Qemu on
	# Microblaze, and supporting GOI on Microblaze is not very
	# relevant.
	depends on !BR2_microblazeel
	depends on !BR2_microblazebe

config BR2_PACKAGE_GOBJECT_INTROSPECTION
	bool "gobject-introspection"
	depends on BR2_USE_MMU # python3, libglib2
	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
	# While gcc 4.8 might be compatible with gobject-introspection,
	# The autobuilders use some toolchains from codesourcery which
	# have gcc 4.8 and a very old version of glibc, which will cause
	# compile errors with locale.c. As such, require 4.9 until this
	# can be verified.
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
	depends on BR2_HOST_GCC_AT_LEAST_8 # host-qemu
	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL
	# gobject-introspection does not require python3 to run on the
	# target; however, because the tools run in a qemu wrapper, a
	# cross-compiled python3 must be installed to staging. As there
	# is no current mechanism to tell Buildroot only to install
	# python to staging, then python must also be installed
	# unconditionally to the target when building
	# gobject-introspection.
	depends on BR2_PACKAGE_PYTHON3
	select BR2_PACKAGE_HOST_GOBJECT_INTROSPECTION
	select BR2_PACKAGE_HOST_QEMU
	select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE
	select BR2_PACKAGE_LIBFFI
	select BR2_PACKAGE_LIBGLIB2_BOOTSTRAP
	select BR2_PACKAGE_ZLIB
	help
	  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.

	  https://gi.readthedocs.io/

comment "gobject-introspection needs python3"
	depends on !BR2_PACKAGE_PYTHON3
	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS

comment "gobject-introspection needs a glibc or musl toolchain, gcc >= 4.9, host gcc >= 8"
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
	depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
		!BR2_HOST_GCC_AT_LEAST_8
