# Forked from Alpine to add phone adaptivity patches

pkgname=gnome-shell-mobile
pkgver=46.1
pkgrel=1
pkgdesc="GNOME shell"
url="https://wiki.gnome.org/Projects/GnomeShell"
# gjs / riscv64: mutter-mobile
arch="all !armhf !s390x !riscv64"
license="GPL-2.0-or-later"
depends="
	accountsservice
	adwaita-icon-theme
	desktop-file-utils
	elogind
	font-adobe-source-code-pro
	font-cantarell
	gnome-bluetooth
	gnome-control-center
	gnome-shell-mobile-schemas
	gsettings-desktop-schemas
	gst-plugin-pipewire
	gst-plugins-good
	gstreamer
	ibus
	librsvg
	mutter-mobile>=46
	tecla
	unzip
	upower
	"
makedepends="
	asciidoc
	elogind-dev
	evolution-data-server-dev evolution-dev
	gcr4-dev
	gjs-dev>=1.64.0
	gnome-autoar-dev
	gnome-bluetooth-dev
	gnome-control-center-dev
	gnome-desktop-dev>=3.35.91
	gobject-introspection-dev
	gstreamer-dev
	ibus-dev
	libcanberra-dev
	libnma-dev
	libxml2-dev
	libxml2-utils
	meson
	mutter-mobile-dev>=46
	networkmanager-dev
	pipewire-dev
	polkit-dev
	pulseaudio-dev
	py3-setuptools
	python3
	sassc
	startup-notification-dev
	tecla-dev
	"
checkdepends="
	xvfb-run
	mesa-dri-gallium
	"
	# gdm is also needed but introduces circular dep
provides="gnome-shell=$pkgver-r$pkgrel"
subpackages="
	$pkgname-dbg
	$pkgname-doc
	$pkgname-lang
	$pkgname-schemas::noarch
	gnome-mobile-extensions-app:extensions_app:noarch
	"
_commit="46-mobile.1"
_gvc_commit="91f3f41490666a526ed78af744507d7ee1134323"
source="gnome-shell-mobile-$_commit.tar.gz::https://gitlab.gnome.org/verdre/gnome-shell-mobile/-/archive/$_commit/gnome-shell-mobile-$_commit.tar.gz
	libgnome-volume-control-$_gvc_commit.tar.gz::https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/archive/$_gvc_commit/libgnome-volume-control-$_gvc_commit.tar.gz
	gsh.patch"
builddir="$srcdir/gnome-shell-mobile-$_commit"
options="!check" # Tests have circular dependency 'gnome-shell <-> gdm'

prepare() {
	default_prepare
	rm -rf "$builddir/subprojects/gvc"
	mv "$srcdir/libgnome-volume-control-$_gvc_commit" $builddir/subprojects/gvc

	sed -i "s/mutter_api_version = '.*'/mutter_api_version = '99'/g" meson.build
	# versions in the format "46-mobile.1" are considered invalid by pkg-config
	sed -i 's/\([0-9]\+\)-mobile\.\([0-9]\+\)/\1.\2/' meson.build
}

build() {
	abuild-meson \
		-Dsystemd=false \
		-Dtests=false \
		. output
	meson compile ${JOBS:+-j ${JOBS}} -C output
}

check() {
	xvfb-run meson test --no-rebuild -v -C output
}

extensions_app() {
	provides="gnome-extensions-app=$pkgver-r$pkgrel"
	pkgdesc="Manage GNOME Shell extensions"
	depends="gnome-shell-mobile libadwaita"
	replaces="gnome-shell-mobile"

	amove usr/bin/gnome-extensions-app
	amove usr/share/applications/org.gnome.Shell.Extensions.desktop
	amove usr/share/gnome-shell/org.gnome.Extensions
	amove usr/share/gnome-shell/org.gnome.Extensions.data.gresource
	amove usr/share/gnome-shell/org.gnome.Extensions.src.gresource
}

schemas() {
	pkgdesc="GNOME Shell gsetting schemas"
	depends=""
	provides="gnome-shell-schemas=$pkgver-r$pkgrel"

	amove usr/share/glib-2.0/schemas
	amove usr/share/gnome-control-center/keybindings
}

lang() {
	default_lang
	provides="gnome-shell-lang=$pkgver-r$pkgrel"
}

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

	# owned by postmarketos-hidden-desktop-entries
	rm $pkgdir/usr/share/applications/org.gnome.Extensions.desktop
}

sha512sums="
aeca65c373979eacf73aff169b69f3cefa8f457a04e641481f79a3a6e398a51d3ccfc6c7a94ae4a81486dd08fb7b600b2a949efc9272ab17ae9719fc7fe35740  gnome-shell-mobile-46-mobile.1.tar.gz
c832e99bc56ae586734d468e4e1a17f107acc76076d07ba45c46359ba751d1e6abe6108e43730fdf1dd18153cfa9f374e3e81118ae4902f0974d5b5f54f8276b  libgnome-volume-control-91f3f41490666a526ed78af744507d7ee1134323.tar.gz
ae4ac679bacd35948b44068e5a70407f473bd96986ee126abb1bdf066db5cbc2087a3ffae0b390286689cacbe8325870fd43663ba39f4f7543216e02bf083934  gsh.patch
"
