# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# Autogenerated by pycargoebuild 0.13.4

EAPI=8

RUST_MIN_VER="1.85.0"
NCM_API_TAG='1.5.1'
NCM_API_COMMIT='63e439734d9d08f28f2752ce858f040822eb97d9'
declare -A GIT_CRATES=(
	[netease-cloud-music-api]="https://github.com/gmg137/netease-cloud-music-api;${NCM_API_TAG};netease-cloud-music-api-%commit%"
)

inherit cargo gnome2-utils meson optfeature xdg flag-o-matic

DESCRIPTION="netease cloud music player based on Rust & GTK for Linux"
HOMEPAGE="https://github.com/gmg137/netease-cloud-music-gtk"

SRC_URI="
	https://github.com/gmg137/netease-cloud-music-gtk/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
	https://codeberg.org/G-two/vendor/raw/branch/main/${P}-crates.tar.xz
	https://github.com/gmg137/netease-cloud-music-api/archive/refs/tags/${NCM_API_TAG}.tar.gz ->
	netease-cloud-music-api-${NCM_API_TAG}.tar.gz
"

LICENSE="GPL-3"
# Dependent crate licenses
LICENSE+="
	Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT MPL-2.0
	Unicode-3.0
"
SLOT="0"
KEYWORDS="~amd64"

DEPEND="
	dev-libs/glib:2
	dev-libs/openssl:*
	media-libs/gst-plugins-bad:1.0
	media-libs/gst-plugins-base:1.0
	media-libs/gst-plugins-good
	media-libs/gst-plugins-ugly
	media-libs/gstreamer:1.0
	media-plugins/gst-plugins-libav
	media-plugins/gst-plugins-soup
	sys-apps/dbus
	sys-libs/zlib
	x11-libs/cairo
	x11-libs/gdk-pixbuf:2
	gui-libs/gtk:4
	gui-libs/libadwaita:1
	x11-libs/pango
"
RDEPEND="${DEPEND}"
BDEPEND="
	sys-devel/gettext
"

src_unpack() {
	cargo_src_unpack
}

src_prepare() {
	# cargo will try to update crates online despite
	# cargo_gen_config set [patch] table in cargo config
	# modify Cargo.toml with unpacked git crate (ncm-api)
	#local ncm_api_git="git = \"https://github.com/gmg137/netease-cloud-music-api.git\", tag = \"${NCM_API_TAG}\""
	local ncm_api_git="git = \"https://gitee.com/gmg137/netease-cloud-music-api.git\", tag = \"${NCM_API_TAG}\""
	local ncm_api_path="path = \"${WORKDIR}/netease-cloud-music-api-${NCM_API_TAG}\""

	sed -i -E "s#${ncm_api_git}#${ncm_api_path}#g" "${S}/Cargo.toml" || die "ncm-api workaround failed"

	pushd "${WORKDIR}/netease-cloud-music-api-${NCM_API_TAG}" > /dev/null || die
	eapply "${FILESDIR}/isahc-disable-static-curl.patch"
	popd > /dev/null || die

	default
}

src_configure() {
	export GETTEXT_SYSTEM=1 # gettext-sys crate
	export OPENSSL_NO_VENDOR=1 # openssl-sys crate
	filter-lto
	local emesonargs=(
		-Dlocaledir=share/locale
		-Ddatadir=share
	)
	use debug || EMESON_BUILDTYPE=release
	meson_src_configure
}

pkg_postinst() {
	optfeature "osdlyrics integration" media-plugins/osdlyrics

	xdg_pkg_postinst
	gnome2_schemas_update
	gnome2_gdk_pixbuf_update
	gnome2_giomodule_cache_update
}

pkg_postrm() {
	xdg_pkg_postrm
	gnome2_schemas_update
	gnome2_giomodule_cache_update
}