Files
guru/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
Charlie Quinet 9bed3c2fe4 app-emulation/lsfg-vk: update 9999
Signed-off-by: Charlie Quinet <w.iron.zombie@gmail.com>
2025-08-28 17:25:23 +02:00

92 lines
1.8 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CARGO_OPTIONAL=1
inherit cargo cmake desktop flag-o-matic toolchain-funcs
DESCRIPTION="Lossless Scaling Frame Generation on Linux via DXVK/Vulkan"
HOMEPAGE="https://github.com/PancakeTAS/lsfg-vk"
LICENSE="MIT"
SLOT="0"
IUSE="+gui"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/PancakeTAS/lsfg-vk"
else
KEYWORDS="~amd64 ~arm64"
SRC_URI="
https://github.com/PancakeTAS/lsfg-vk/archive/refs/tags/v${PV}.tar.gz -> lsfg-vk-${PV}.tar.gz
${CARGO_CRATE_URIS}
"
fi
BDEPEND="
dev-util/vulkan-headers
gui? ( ${RUST_DEPEND} )
"
DEPEND="
dev-util/glslang
gui? (
dev-libs/glib:2
gui-libs/gtk:4[introspection]
gui-libs/libadwaita
)
|| (
media-libs/glfw
media-libs/libsdl2
media-libs/libsdl3
)
media-libs/vulkan-loader
"
RDEPEND="${DEPEND}"
src_unpack() {
if [[ ${PV} != 9999 ]]; then
use gui || default
else
git-r3_src_unpack
fi
if use gui; then
if [[ ${PV} != 9999 ]]; then
cargo_src_unpack
else
oldS="${S}"
S="${S}/ui"
cargo_live_src_unpack
S="${oldS}"
fi
fi
}
src_prepare() {
eapply_user
cmake_src_prepare
}
src_configure() {
tc-is-gcc && filter-lto # LTO with gcc causes segfaults at runtime
cmake_src_configure
use gui && { pushd ui > /dev/null || die; cargo_src_configure; }
}
src_compile() {
cmake_src_compile
use gui && { pushd ui > /dev/null || die; cargo_src_compile; }
}
src_install() {
insinto "/usr/share/vulkan/implicit_layer.d/"
doins "${S}/VkLayer_LS_frame_generation.json"
dolib.so "${WORKDIR}/${P}_build/liblsfg-vk.so"
if use gui; then
dobin "${S}/ui/$(cargo_target_dir)/lsfg-vk-ui"
domenu "${S}/ui/rsc/gay.pancake.lsfg-vk-ui.desktop"
newicon -s 256 "${S}/ui/rsc/icon.png" "gay.pancake.lsfg-vk-ui.png"
fi
}