# 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="An alternative shell for KDE Plasma that aims to replicate the look and feel of Windows 7."
HOMEPAGE="https://github.com/aeroshell-desktop/aerothemeplasma"
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="+uac-polkit-agent +qrca 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="test"
REQUIRED_USE="fontconfig? ( X )"
SLOT="6/7"

# 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-plasma/libplasma-6.7.49.9999
	plasma-theme/aeroshell-workspace
	plasma-theme/aeroshell-kwin-components
	plasma-theme/aerothemeplasma-sounds
	plasma-theme/aerothemeplasma-icons
	plasma-theme/aeroshell-smod
	dev-qt/qtvirtualkeyboard
	dev-qt/qtmultimedia
	dev-qt/qt5compat
	dev-qt/qtwayland
	dev-qt/qtdeclarative
	kde-frameworks/kconfigwidgets
	kde-frameworks/ksvg
	dev-libs/wayland
	kde-frameworks/kiconthemes
	kde-plasma/plasma-activities
	kde-frameworks/kjobwidgets
	kde-frameworks/kio
	kde-frameworks/kglobalaccel
	kde-plasma/kpipewire
	kde-frameworks/ki18n
	wayland? ( kde-plasma/kwin )
	X? ( kde-plasma/kwin-x11 )
	kde-plasma/plasma-workspace
	kde-plasma/powerdevil
	kde-frameworks/kauth
	kde-frameworks/kcmutils
	kde-frameworks/networkmanager-qt
	kde-frameworks/kconfig
	kde-frameworks/kquickcharts
	kde-frameworks/prison
	kde-frameworks/knewstuff
	kde-frameworks/kdeclarative
	dev-libs/kirigami-addons
	kde-frameworks/kcoreaddons
	kde-frameworks/kservice
	kde-frameworks/kxmlgui
	kde-plasma/plasma5support
	x11-themes/kvantum
	x11-misc/sddm
	kde-plasma/sddm-kcm
	kde-plasma/plasma-nm
	kde-plasma/plasma-pa
	kde-frameworks/kwindowsystem
	kde-frameworks/knotifications
	kde-frameworks/knotifyconfig
	kde-plasma/kmenuedit
	kde-frameworks/kirigami
	kde-frameworks/kitemmodels
	kde-frameworks/kpackage
	kde-frameworks/kwidgetsaddons
	kde-plasma/plasma-desktop
	dev-qt/qtbase
	uac-polkit-agent? ( plasma-theme/uac-polkit-agent )
	qrca? ( media-gfx/qrca )
"

BDEPEND="
		kde-frameworks/extra-cmake-modules
		dev-libs/plasma-wayland-protocols
		"

src_configure() {
	ecm_src_prepare

	cmake_comment_add_subdirectory login-sessions

	if ! use policykit; then
		cmake_comment_add_subdirectory -f kcms users
	fi

	if ! use fontconfig; then
		ecm_punt_bogus_dep XCB IMAGE
		sed -e "s/check_X11_lib(Xft)/#&/" -i CMakeLists.txt || die
	fi

	# TODO: try to get build switches upstreamed
	if ! use flatpak; then
		sed -e "s/^pkg_check_modules.*Flatpak/#&/" -i CMakeLists.txt || die
	fi
	if ! use systemd; then
		sed -e "s/^pkg_check_modules.*SYSTEMD/#&/" -i CMakeLists.txt || die
	fi
}

src_configure() {
	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() {
#	cmake_src_install
#	DESTDIR="${D}" cmake --install build_smodglow
#