# Contributor: Stone Tickle <lattis@mochiro.moe>
# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgname=muon
pkgver=0.4.0
pkgrel=1
pkgdesc="Meson-compatible build system"
url="https://muon.build"
arch="all"
license="GPL-3.0-only AND Apache-2.0"
depends="samurai"
makedepends="
	curl-dev
	libarchive-dev
	linux-headers
	pkgconf-dev
	py3-yaml
	scdoc
	"
subpackages="
	$pkgname-doc
	$pkgname-wrap
	abuild-muon:_abuild_helper:noarch
	"
source="https://muon.build/releases/v$pkgver/muon-v$pkgver.tar.gz
	pkgconfig-gen-test.patch
	abuild-muon
	"
builddir="$srcdir/muon-v$pkgver"

prepare() {
	default_prepare

	cp -a subprojects/meson-tests subprojects/meson-tests.orig
}

build() {
	CFLAGS=-DBOOTSTRAP_NO_SAMU ./bootstrap.sh build-boot
	build-boot/muon-bootstrap setup \
		-Dauto_features=disabled \
		-Dwrap_mode=nodownload \
		-Dlibcurl=disabled \
		-Dlibarchive=disabled \
		-Dlibpkgconf=enabled \
		-Dsamurai=disabled \
		-Ddocs=disabled \
		-Dtracy=disabled \
		build-boot
	samu -C build-boot

	PATH="$PATH:$builddir/build-boot" \
	../abuild-muon \
		-Dlibcurl=disabled \
		-Dlibarchive=disabled \
		-Dlibpkgconf=enabled \
		-Dsamurai=disabled \
		-Ddocs=disabled \
		-Dtracy=disabled \
		-Dwerror=true \
		build .
	samu -C build

	PATH="$PATH:$builddir/build" \
	../abuild-muon \
		-Dlibcurl=enabled \
		-Dlibarchive=enabled \
		-Dlibpkgconf=enabled \
		-Dsamurai=disabled \
		-Ddocs=enabled \
		-Dtracy=disabled \
		-Dwerror=true \
		build-wrap .
	samu -C build-wrap

	PATH="$PATH:$builddir/build" \
	../abuild-muon \
		build-docs \
		subprojects/meson-docs
	samu -C build-docs
}

check() {
	local d; for d in build-wrap build; do
		$d/muon -C $d test -j "${JOBS:-0}" -R -d dots
		rm -r subprojects/meson-tests
		cp -a subprojects/meson-tests.orig subprojects/meson-tests
	done
}

package() {
	DESTDIR="$pkgdir" build/muon -C build-docs install
	DESTDIR="$pkgdir" build/muon -C build-wrap install
	DESTDIR="$pkgdir" build/muon -C build install

	install -Dvm755 "$srcdir"/abuild-muon -t "$pkgdir"/usr/bin/
}

wrap() {
	pkgdesc="$pkgdesc (with wrap-file support)"
	provides="muon"
	replaces="muon"

	install -Dvm755 "$builddir"/build-wrap/muon -t "$subpkgdir"/usr/bin/
}

_abuild_helper() {
	pkgdesc="$pkgdesc (abuild helper)"
	depends="cmd:$pkgname=$pkgver-r$pkgrel abuild"
	install_if="cmd:$pkgname=$pkgver-r$pkgrel abuild"

	amove usr/bin/abuild-muon
}


sha512sums="
2ab817bfe886fff5a9cd00935f19c7c73cc4556aa11a538ca496bdad4cced4dc1608efd05d58b6971640d0543bd7d4486185ed93a26522690cf2e1d348342bb8  muon-v0.4.0.tar.gz
e1da901efb5e54cce7bf3a8f9546f0701395d5ad7a4d717e5ab16d685b6d5b59310710228eb85f2f0a8eea58c500cc1b5049c9c32be5d0f4613cb7deb4827536  pkgconfig-gen-test.patch
754818d84c29b991d2f61579706a695d1cf412c2d55d16b63f010618de43e89453783655a9028dfd03c658a2877955d391c8260b1d77bd2816309a4f888ef9b4  abuild-muon
"
