maintainer="Bart Ribbers <bribbers@disroot.org>"
pkgname=art_standalone
pkgver=0_git20250325
pkgrel=1
_commit="60d754b814ce665daeac947f60f24eac23775171"
pkgdesc="A standalone version of Dalvik with Art build in"
url="https://gitlab.com/android_translation_layer/art_standalone"
arch="x86_64 aarch64 armv7 x86"
license="Apache-2.0"
depends="
	java-cacerts
	wolfssl-jni
	"
# bash is used by /usr/bin/dx
depends_dev="
	$pkgname=$pkgver-r$pkgrel
	bash
	"
case "$CARCH" in
	aarch64|armv7) depends_dev="$depends_dev vixl-dev" ;;
esac
makedepends="$depends_dev
	bionic_translation-dev
	bsd-compat-headers
	expat-dev
	icu-dev
	java-common
	libbsd-dev
	libcap-dev
	libpng-dev
	libselinux-dev
	libunwind-dev
	lz4-dev
	meson
	openjdk8-jdk
	openssl-dev
	python3
	valgrind-dev
	wolfssl-jni-dev
	xz-dev
	zip
	zlib-dev
	"
somask="
	libart-compiler.so
	libart-dexlayout.so
	libart.so
	libartbase.so
	libartpalette.so
	libbacktrace.so
	libbase.so
	libcutils.so
	libdexfile.so
	liblog.so
	libnativebridge.so
	libnativehelper.so
	libopenjdkjvm.so
	libprofile.so
	libsigchain.so
	libunwind.so
	libutils.so
	libziparchive.so
	"
subpackages="
	libandroidfw
	libandroidfw-dev:libandroidfw_dev
	adbd
	$pkgname-dev
	$pkgname-dbg
	"
source="https://gitlab.com/android_translation_layer/art_standalone/-/archive/$_commit/art_standalone-$_commit.tar.gz
	0001-art_standalone-libunwind-x86-fix-incompoatible-pointer-type-error.patch
	"
options="!check" # No tests
builddir="$srcdir/art_standalone-$_commit"

prepare() {
	default_prepare

	# Hack
	ln -s /usr/bin/python3 python
	export PATH="$PATH:$PWD"
}

build() {
	make PREFIX=/usr ____LIBDIR=lib
	make PREFIX=/usr adbd
}

package() {
	make \
		____PREFIX="$pkgdir"/usr \
		____INSTALL_ETC="$pkgdir"/etc \
		____LIBDIR=lib \
		install
	make \
		____PREFIX="$pkgdir"/usr \
		install_adbd
}

dev() {
	default_dev

	amove \
		usr/lib/java/core-all_classes.jar \
		usr/lib/java/dx.jar \
		usr/bin/dx
}

libandroidfw() {
	depends=""
	amove usr/lib/art/libandroidfw.so
}

libandroidfw_dev() {
	depends="libandroidfw"

	amove usr/include/androidfw/androidfw_c_api.h
}

adbd() {
	depends="$pkgname"
	amove usr/bin/adbd
}

sha512sums="
3a85e82279d064a470d0f03e5cea5ab76f5bc62153dd0b8d614bcdb2821a7b9c2a527787ac7c10729baf4bb6b12155c6a730ae40d0a4b16030f59b07eed7d7d1  art_standalone-60d754b814ce665daeac947f60f24eac23775171.tar.gz
7f61a7906bf91a4fdd66c973bf951a7445e68882fe411849de4a086e9fb1d1ac748f0b7406a9387dd25555b174744fcc6e4a29caf9953cab57e5896c686dfede  0001-art_standalone-libunwind-x86-fix-incompoatible-pointer-type-error.patch
"
