# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Alper Nebi Yasak <alpernebiyasak@gmail.com>
pkgname=device-google-x64cros
pkgdesc="Google Chromebooks with x64 CPU"
pkgver=1
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
# pmb:strict: avoid grub-related install error during build with pmbootstrap
options="!check !archcheck pmb:strict"
depends="
	alsa-ucm-conf
	depthcharge-tools
	postmarketos-base
	postmarketos-cros-common
	postmarketos-update-depthcharge-kernel
	sof-bin
	"
makedepends="
	devicepkg-dev
	grub
	grub-efi
	"
subpackages="
	$pkgname-libva
	$pkgname-kernel-lts:kernel_lts
	$pkgname-kernel-edge:kernel_edge
	$pkgname-vulkan
	"
source="
	deviceinfo
	modules-initfs
	grub_early.cfg
	grub_edge.cfg
	grub_lts.cfg
	"

build() {
	devicepkg_build $startdir $pkgname

	grub-mkimage \
		--config="$srcdir/grub_early.cfg" \
		--prefix="" \
		--output="bootx64.efi" \
		--format="x86_64-efi" \
		--compression="xz" \
		\
		all_video \
		cat \
		configfile \
		disk \
		echo \
		efi_gop \
		fat \
		gzio \
		help \
		iso9660 \
		linux \
		ls \
		normal \
		part_gpt \
		part_msdos \
		search \
		search_label \
		test \
		true
}

package() {
	devicepkg_package $startdir $pkgname

	install -Dm644 "$srcdir"/bootx64.efi \
		"$pkgdir"/boot/EFI/Boot/bootx64.efi
}

libva() {
	install_if="$pkgname libva"
	depends="intel-media-driver libva-intel-driver"
	mkdir "$subpkgdir"
}

kernel_edge() {
	pkgdesc="Alpine Edge kernel"
	depends="linux-edge"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname

	install -Dm644 "$srcdir"/grub_edge.cfg \
		"$subpkgdir"/boot/grub/grub.cfg
}

kernel_lts() {
	pkgdesc="Alpine LTS kernel"
	depends="linux-lts"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname

	install -Dm644 "$srcdir"/grub_lts.cfg \
		"$subpkgdir"/boot/grub/grub.cfg
}

vulkan() {
	install_if="$pkgname vulkan-loader"
	depends="mesa-vulkan-intel"
	mkdir "$subpkgdir"
}

sha512sums="
7bdf9838a1716b1a50abfdfcb0f4c85506a23e72e5795c730d6b278d4d72319893c0eb47ba39537caca5e66fdd13d08075ada29421cb43647796671220f31a7f  deviceinfo
9606a2f61bfd9e0a2ea04fbe45e25093b702fd5b5cccf9f4f50768ee3b501251d8d3e1605485e5ec8f485b4bff7e44fe20d488f80736837654a9951391a97789  modules-initfs
0f9357d4eea089628fbceb1e3e96d21a3f4329aeb6743158a6f877f967ef274506404eba949d5f01b7e1adea149f9a3aef992a5e8cd4181f93ab00909b1c5ecd  grub_early.cfg
1fcae6891028bc07051e6e6faf9dd3ec2304c6165f9df05198f28a7fa2ba85c1dd8d07b72a5122d9628b67a2b0096ac180a9a2de0f391f9ce850c07dc79ac857  grub_edge.cfg
e15beaf385a350a7c36be249cf9495e4622f7888c8def6ac47359ebd2ef2c994f954abec8ccb16b402269f949e6f6016d41711e6596f46ba3dad240f84ba163f  grub_lts.cfg
"
