# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake qmake-utils xdg-utils

DESCRIPTION="The Lomiri (Unity8) Desktop"
HOMEPAGE="https://gitlab.com/ubports/development/core/${PN}"

if [[ ${PV} == 9999 ]]; then
    KEYWORDS=""
    EGIT_REPO_URI="https://gitlab.com/ubports/development/core/${PN}.git"
    inherit git-r3
else
    KEYWORDS="~amd64"
    SRC_URI="https://gitlab.com/ubports/development/core/${PN}/-/archive/${PV}/${P}.tar.gz"
fi

LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
RESTRICT="test"

DEPEND="
	dev-libs/glib
	dev-libs/deviceinfo
	dev-qt/qtconcurrent:5
	dev-qt/qtdeclarative:5
	dev-qt/qtmir
	dev-qt/qtsvg:5
	dev-qt/qtsql:5
	dev-qt/qtxml:5
	gnome-base/gnome-desktop:3
	gui-libs/qmenumodel
	>=lomiri-base/lomiri-schemas-0.1.8
	>=lomiri-base/lomiri-system-settings-1.3.2
	>=lomiri-base/lomiri-app-launch-0.1.5
	>=lomiri-base/lomiri-ui-toolkit-1.3.5110
	>=net-libs/geonames-0.3.1
	x11-base/xwayland
	x11-misc/lightdm[non-root]
"

RDEPEND="
	${DEPEND}
	gui-libs/biometryd
	gui-libs/hfd-service
	ayatana-indicators/ayatana-indicator-keyboard
	ayatana-indicators/ayatana-indicator-session
	lomiri-extra/lomiri-notifications
    lomiri-extra/lomiri-telephony-service
    lomiri-extra/lomiri-thumbnailer
	lomiri-themes/lomiri-wallpapers
	lomiri-themes/suru-icon-theme
"

BDEPEND="
	dev-build/cmake-extras
    dev-util/intltool
	virtual/pkgconfig
"

PATCHES=(
	"${FILESDIR}"/0001-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch
	"${FILESDIR}"/0002-Add-qt5-suffix-to-search-for-Qt-tools.patch
	"${FILESDIR}"/0005-Use-Mir-2.x.patch
	"${FILESDIR}"/0006-Build-with-C-20.patch
	"${FILESDIR}"/0007-DisplayConfigurationStorage-drop-use-of-descriptors.patch
	"${FILESDIR}"/0008_disable_install_version_file.patch
)

src_prepare() {
    eapply_user

	# set 'lomiri-greeter-wrapper' as greeter wrapper (not set by default in repository)
	echo 'greeter-wrapper=lomiri-greeter-wrapper' >> data/51-lomiri-greeter.conf || die

	# set 'wayland' as session server
	sed  -i '/^X-LightDM-Session-Type=/ s/=.*/=wayland/' data/lomiri-greeter.desktop.in.in || die

    cmake_src_prepare
}

src_configure() {
	# add 'qmlplugindump' to PATH
    export PATH="$(qt5_get_bindir):${PATH}"

    local mycmakeargs=(
        -DWITH_MIR2=ON
		-DNO_TESTS=ON
    )

    cmake_src_configure
}

src_install() {
	cmake_src_install

	# install 'version' file
	insinto /var/lib/lomiri
	doins ${S}_build/data/version

	# replace Ubuntu logo with Gentoo
	insinto /usr/share/lomiri/Launcher/graphics
	doins "${FILESDIR}"/home.svg

	# install lomiri greeter
	exeinto /usr/bin
	doexe "${FILESDIR}"/lomiri-greeter-wrapper
	#doexe data/lomiri-greeter-wrapper

	insinto /usr/share/polkit-1/rules.d
	doins data/lomiri-greeter.rules
}

pkg_postinst() {
    xdg_icon_cache_update
	xdg_desktop_database_update
}

pkg_postrm() {
    xdg_icon_cache_update
	xdg_desktop_database_update
}