# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Loosely based on packages in https://gitgud.io/aeroshell/aeroshell-aur-packages, with packaging adapted for Gentoo.
EAPI=8
inherit cmake git-r3 ecm xdg

DESCRIPTION="Various components required by AeroShell-based desktops."
HOMEPAGE="https://gitgud.io/aeroshell/aeroshell-workspace"
EGIT_REPO_URI="${HOMEPAGE}.git"

# Source directory; the dir where the sources can be found (automatically
# unpacked) inside ${WORKDIR}.  The default value for S is ${WORKDIR}/${P}
# If you don't need to change it, leave the S= line out of the ebuild
# to keep it tidy.
#S="${WORKDIR}/${P}"

LICENSE="AGPL-3+"

# The SLOT variable is used to tell Portage if it's OK to keep multiple
# versions of the same package installed at the same time.  For example,
# if we have a libfoo-1.2.2 and libfoo-1.3.2 (which is not compatible
# with 1.2.2), it would be optimal to instruct Portage to not remove
# libfoo-1.2.2 if we decide to upgrade to libfoo-1.3.2.  To do this,
# we specify SLOT="1.2" in libfoo-1.2.2 and SLOT="1.3" in libfoo-1.3.2.
# emerge clean understands SLOTs, and will keep the most recent version
# of each SLOT and remove everything else.
# Note that normal applications should use SLOT="0" if possible, since
# there should only be exactly one version installed at a time.
# Do not use SLOT="", because the SLOT variable must not be empty.
SLOT="0"

# Using KEYWORDS, we can record masking information *inside* an ebuild
# instead of relying on an external package.mask file.  Right now, you
# should set the KEYWORDS variable for every ebuild so that it contains
# the names of all the architectures with which the ebuild works.
# All of the official architectures can be found in the arch.list file
# which is in the profiles/ directory.  Usually you should just set this
# to "~amd64".  The ~ in front of the architecture indicates that the
# package is new and should be considered unstable until testing proves
# its stability.  So, if you've confirmed that your ebuild works on
# amd64 and ppc, you'd specify:
# KEYWORDS="~amd64 ~ppc"
# Once packages go stable, the ~ prefix is removed.
# For binary packages, use -* and then list the archs the bin package
# exists for.  If the package was for an x86 binary package, then
# KEYWORDS would be set like this: KEYWORDS="-* x86"
# Do not use KEYWORDS="*"; this is not valid in an ebuild context.
KEYWORDS=""

# Comprehensive list of any and all USE flags leveraged in the ebuild,
# with some exceptions, e.g., ARCH specific flags like "amd64" or "ppc".
# Not needed if the ebuild doesn't use any USE flags.
IUSE="appstream +fontconfig flatpak +ksysguard +policykit screencast
+semantic-desktop systemd telemetry +wallpaper-metadata +X wayland"

# A space delimited list of portage features to restrict. man 5 ebuild
# for details.  Usually not needed.
#RESTRICT="strip"


# Run-time dependencies. Must be defined to whatever this depends on to run.
# Example:
#    ssl? ( >=dev-libs/openssl-1.0.2q:0= )
#    >=dev-lang/perl-5.24.3-r1
# It is advisable to use the >= syntax show above, to reflect what you
# had installed on your system when you tested the package.  Then
# other users hopefully won't be caught without the right version of
# a dependency.
#RDEPEND=""

# Build-time dependencies that need to be binary compatible with the system
# being built (CHOST). These include libraries that we link against.
# The below is valid if the same run-time depends are required to compile.
DEPEND="${RDEPEND}
	sys-libs/glibc
	kde-frameworks/kconfig
	kde-frameworks/kcmutils
	kde-plasma/libplasma
	x11-misc/sddm
	kde-plasma/libksysguard
	kde-plasma/plasma-workspace
	dev-qt/qtdeclarative
	kde-frameworks/kjobwidgets
	kde-plasma/plasma-activities-stats
	kde-frameworks/ki18n
	kde-frameworks/kcoreaddons
	kde-frameworks/kwindowsystem
	kde-frameworks/kservice
	kde-frameworks/kio
	dev-qt/qtbase
"

BDEPEND="
		kde-frameworks/extra-cmake-modules
		"

# TODO: I'm not sure if this should be upstreamed, I\'m going to wait for what @wackyideas thinks...
# Update, doesn't solve the issue with the package trying to find older .so versions anyway, so this patch is currently disabled.
#src_prepare() {
#	default
#
#	sed -i '/^find_package(Plasma 6/i set(PROJECT_DEP_VERSION "6.6.90")' CMakeLists.txt || die
#	sed -i 's/find_package(Plasma 6.6.5 REQUIRED)/find_package(Plasma ${PROJECT_DEP_VERSION} REQUIRED)/g' CMakeLists.txt || die
#	sed -i 's/find_package(PlasmaActivities 6.6.5 REQUIRED)/find_package(PlasmaActivities ${PROJECT_DEP_VERSION} REQUIRED)/g' CMakeLists.txt || die
#	sed -i 's/find_package(PlasmaActivitiesStats 6.6.5 REQUIRED)/find_package(PlasmaActivitiesStats ${PROJECT_DEP_VERSION} REQUIRED)/g' CMakeLists.txt || die
#
#	cmake_src_prepare
#}

src_configure() {
	export DESTDIR=${D}
	local mycmakeargs=(
		-DWITH_X11=$(usex X) # remember to submit patches with bugs
		-DWITH_X11_SESSION=$(usex X)
		-DCMAKE_DISABLE_FIND_PACKAGE_PackageKitQt6=ON # not packaged
		-DGLIBC_LOCALE_GEN=OFF
		-DGLIBC_LOCALE_PREGENERATED=$(usex elibc_glibc)
		$(cmake_use_find_package appstream AppStreamQt)
		$(cmake_use_find_package fontconfig Fontconfig)
		$(cmake_use_find_package fontconfig Freetype)
		$(cmake_use_find_package ksysguard KSysGuard)
		-DBUILD_CAMERAINDICATOR=$(usex screencast)
		$(cmake_use_find_package semantic-desktop KF6Baloo)
		$(cmake_use_find_package telemetry KF6UserFeedback)
		$(cmake_use_find_package wallpaper-metadata KExiv2Qt6)
	)

	ecm_src_configure
}

#src_compile() {
#		cmake_build
#}

src_install() {
	xdg_pkg_postinst
}