# Template file for 'gobject-introspection'
# keep in sync with gobject-introspection-bootstrap
pkgname=gobject-introspection
version=1.82.0
revision=2
build_style=meson
build_helper="qemu"
pycompile_dirs="usr/lib/gobject-introspection/giscanner"
hostmakedepends="flex pkg-config"
# won't run tests with cairo to avoid cyclical deps
makedepends="libffi-devel libglib-devel python3-devel python3-Mako
 python3-Markdown"
depends="libgirepository-devel python3-Mako python3-Markdown python3-setuptools"
short_desc="Introspection system for GObject-based libraries"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later"
homepage="https://wiki.gnome.org/Projects/GObjectIntrospection"
changelog="https://gitlab.gnome.org/GNOME/gobject-introspection/-/raw/main/NEWS"
distfiles="${GNOME_SITE}/gobject-introspection/${version%.*}/gobject-introspection-${version}.tar.xz"
checksum=0f5a4c1908424bf26bc41e9361168c363685080fbdb87a196c891c8401ca2f09
python_version=3

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" gobject-introspection prelink-cross"
	configure_args+=" -Dgi_cross_use_prebuilt_gi=true
	 -Dgi_cross_binary_wrapper=/usr/bin/g-ir-scanner-qemuwrapper
	 -Dgi_cross_ldd_wrapper=/usr/bin/g-ir-scanner-lddwrapper
	 -Dgi_cross_pkgconfig_sysroot_path=${XBPS_CROSS_BASE}"
fi

post_install() {
	rm ${DESTDIR}/usr/lib/gobject-introspection/giscanner/doctemplates/*/meson.build

	# Install our wrappers system-wide, they are required for building all other
	# gobject-based packages.
	vbin ${FILESDIR}/g-ir-scanner-qemuwrapper
	vbin ${FILESDIR}/g-ir-scanner-lddwrapper

	# Install g-ir-scanner-wrapper as g-ir-scanner, we need it with that name since
	# we can't expect people to just not hardcode /usr/bin/g-ir-scanner, some packages
	# like gtk+3 just like **really** much to use /usr/bin/g-ir-scanner and meson with
	# find_program is also to blame.
	mv ${DESTDIR}/usr/bin/g-ir-scanner{,.wrapped}
	vbin ${FILESDIR}/g-ir-scanner-wrapper g-ir-scanner

	# Same logic of g-ir-scanner applies here
	mv ${DESTDIR}/usr/bin/g-ir-compiler{,.wrapped}
	vbin ${FILESDIR}/g-ir-compiler-wrapper g-ir-compiler

	# For cross builds copy the not installed tests subdirectory
	if [ "$CROSS_BUILD" ]; then
		vmkdir usr/share/gobject-introspection-1.0/tests
		for f in annotation.? drawable.? foo.? regress.? utility.? warnlib.? \
			gimarshallingtests.? gitestmacros.h; do
			vcopy gobject-introspection-tests/$f usr/share/gobject-introspection-1.0/tests
		done
	fi

	# modify the pkg-config files to respect ${pc_sysrootdir} for variables that are
	# meant to be called with 'pkg-config --variable'
	vsed -e 's|^g_ir_scanner=.*|g_ir_scanner=${pc_sysrootdir}/${bindir}/g-ir-scanner|g' \
		 -e 's|^g_ir_compiler=.*|g_ir_compiler=${pc_sysrootdir}/${bindir}/g-ir-compiler|g' \
		 -e 's|^g_ir_generate=.*|g_ir_generate=${pc_sysrootdir}/${bindir}/g-ir-generate|g' \
		 -e 's|^gidatadir.*|gidatadir=${pc_sysrootdir}/${datadir}/gobject-introspection-1.0|g' \
		 -e 's|^girdir.*|girdir=${pc_sysrootdir}/${datadir}/gir-1.0|g' \
		 -e 's|^typelibdir.*|typelibdir=${pc_sysrootdir}/${libdir}/girepository-1.0|g' \
		 -i ${DESTDIR}/usr/lib/pkgconfig/gobject-introspection-1.0.pc \
		 -i ${DESTDIR}/usr/lib/pkgconfig/gobject-introspection-no-export-1.0.pc

	# Fix the name of the python3 c bindings
	mv ${DESTDIR}/usr/lib/gobject-introspection/giscanner/_giscanner*.so \
	   ${DESTDIR}/usr/lib/gobject-introspection/giscanner/_giscanner.so
}

gir-freedesktop_package() {
	short_desc="Introspection data for some FreeDesktop components"
	pkg_install() {
		vmove usr/lib/girepository-1.0
	}
}

libgirepository_package() {
	short_desc="Library for handling GObject introspection data (runtime library)"
	depends="gir-freedesktop-${version}_${revision}"
	pkg_install() {
		vmove "usr/lib/*.so.*"
	}
}

libgirepository-devel_package() {
	depends="cairo-devel libffi-devel libglib-devel libgirepository>=${version}_${revision}"
	short_desc="Library for handling GObject introspection data (development files)"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
		vmove usr/share/gir-1.0
		vmove usr/share/aclocal
	}
}
