config BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
	bool
	default y
	depends on BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS
	depends on !BR2_RISCV_32 # qemu-riscv32 segfaults in qemu-5.0.0

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_TOOLCHAIN_USES_GLIBC
	# 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_QEMU
	select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE
	select BR2_PACKAGE_LIBFFI
	select BR2_PACKAGE_LIBGLIB2
	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://wiki.gnome.org/action/show/Projects/GObjectIntrospection

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

comment "gobject-introspection needs a glibc toolchain, gcc >= 4.9"
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_USES_GLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
