# Forked from Alpine to temporarily add a patch to increase timeout. Remove
# this fork and update the alpine package once the PR is merged and a new
# calamares-extensions release is tagged.
# https://github.com/calamares/calamares-extensions/pull/20

# Do not change arch to noarch, until this bug is resolved:
# https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10022
pkgname=calamares-extensions
pkgver=1.2.1
pkgrel=2
# armhf blocked by qt5-qtdeclarative
# ppc64le, s390x and riscv64 blocked by qt5-qtwebengine -> calamares
arch="all !armhf !ppc64le !s390x !riscv64"
url="https://github.com/calamares/calamares-extensions"
pkgdesc="Calamares Branding and Module Examples"
license="GPL-3.0-or-later"
makedepends="
	calamares-dev
	qt5-qtsvg-dev
	qt5-qtdeclarative-dev
	"
source="
	https://github.com/calamares/calamares-extensions/releases/download/v$pkgver/calamares-extensions-$pkgver.tar.gz
	0001-increase-timeout-for-PartitionJob-10-min.patch
	"
options="!check" # has no tests

# Modules and brandings to build:
# https://github.com/calamares/calamares-extensions/tree/calamares/modules
# https://github.com/calamares/calamares-extensions/tree/calamares/branding
_modules="
	mobile
	"
_brandings="
	default-mobile
	"

for i in $_modules; do
	subpackages="$pkgname-mod-$i:_module $subpackages"
done
for i in $_brandings; do
	subpackages="$pkgname-brand-$i:_branding $subpackages"
done

# Check if one module/branding is enabled
# $1: name of module/branding
# $2: either $_modules or $_brandings
is_enabled() {
	local i
	for i in $2; do
		[ "$i" = "$1" ] && return 0
	done
	return 1
}

# Check if string $1 is in CMakeLists.txt and comment it out
comment_out() {
	sed -i "s~$1~#&~g" "$builddir/CMakeLists.txt"
}

prepare() {
	default_prepare

	local i

	msg "disabled modules:"
	cd "$builddir/modules"
	for i in *; do
		if ! [ -d "$i" ] || is_enabled "$i" "$_modules"; then
			continue
		fi
		echo " - $i"
		comment_out "calamares_add_module_subdirectory( modules/$i "
	done

	msg "disabled brandings:"
	cd "$builddir/branding"
	for i in *; do
		if ! [ -d "$i" ] || is_enabled "$i" "$_brandings"; then
			continue
		fi
		echo " - $i"
		comment_out "calamares_add_branding_subdirectory( branding/$i "
	done
}

build() {
	cmake -B build \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib
	cmake --build build
}

_module() {
	local module=${subpkgname##calamares-extensions-mod-}
	local path="usr/lib/calamares/modules"

	mkdir -p "$subpkgdir/$path"
	mv "$pkgdir/$path/$module" "$subpkgdir/$path/$module"
}

_branding() {
	local branding=${subpkgname##calamares-extensions-brand-}
	local path="usr/share/calamares/branding"

	mkdir -p "$subpkgdir/$path"
	mv "$pkgdir/$path/$branding" "$subpkgdir/$path/$branding"
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
dae305835656b88fd17a306c21ec49b904ee77d9db34144d29702fb4de9f7cb3eed93e694e0d047722b4ff949f44e99b0e2054eb2d5b4a1645b2e5ead8e81893  calamares-extensions-1.2.1.tar.gz
bf5ba15b6a1a59540f826274056b2aa4d71242882d89ae161babee542c0bdc5c85ffd348957918e96f1cfb93b6007a1b3c5aa0894985a8a80babd7c3907c45f9  0001-increase-timeout-for-PartitionJob-10-min.patch
"
