# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gjs
# even number after first dot are the stable releases
pkgver=1.82.1
pkgrel=0
pkgdesc="GNOME javascript library"
url="https://wiki.gnome.org/Projects/Gjs"
# armhf blocked by mozjs
arch="all !armhf"
license="MIT AND LGPL-2.0-or-later"
makedepends="
	cairo-dev
	clang
	dbus
	gobject-introspection-dev
	gtk+3.0-dev
	libffi>=3.3
	meson
	mozjs-dev
	"
checkdepends="xvfb-run"
subpackages="$pkgname-dev $pkgname-dbg"
source="https://download.gnome.org/sources/gjs/${pkgver%.*}/gjs-$pkgver.tar.xz
	encoding.patch
	"

case "$CARCH" in
riscv64|s390x)
	# lld broken on riscv64, disabled on s390x
	;;
*)
	makedepends="$makedepends lld"
	;;
esac

build() {
	case "$CARCH" in
	aarch64|arm*|riscv64|loongarch64)
		# not supported by clang here
		export CFLAGS="${CFLAGS/-fstack-clash-protection}"
		export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
		;;
	esac

	case "$CARCH" in
	riscv64|s390x)
		local lto=false
		;;
	*)
		local lto=true
		export LDFLAGS="$LDFLAGS -fuse-ld=lld"
		;;
	esac

	CC=clang \
	CXX=clang++ \
	CFLAGS="$CFLAGS -O2" \
	CXXFLAGS="$CXXFLAGS -O2" \
	abuild-meson \
		--buildtype=release \
		-Db_lto=$lto \
		-Db_ndebug=true \
		-Dprofiler=disabled \
		-Dinstalled_tests=false \
		output
	meson compile -C output
}

check() {
	# Tests can take a while on armv7
	xvfb-run -a meson test --print-errorlogs --no-rebuild -C output -t 10
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

sha512sums="
2e4e1ceee784d252cb0f6a5df9c9dd9a486112af9973e184d785cb4bcb06a5844e16ce51b8a46021220f2b6ead24186eb98cc15b836492f71922e8a80669b16f  gjs-1.82.1.tar.xz
3524a4c6772f1be1d6e2320650d7fb9f81cc2ceb7c79c2521c0ee7a4202d5681a88586ab9439050611ee1719f9a977bb65d0eaaa536148e7e4590baf1f50eae8  encoding.patch
"
