commit:     eb4eab6d5c6ad73087eaef42036f084af23fef86
Author:     Charlie Quinet <w.iron.zombie <AT> gmail <DOT> com>
AuthorDate: Thu Jul 24 22:03:10 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Thu Jul 24 22:03:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=eb4eab6d

app-emulation/lsfg-vk: improve ebuild, use CARGO_OPTIONAL

Signed-off-by: Charlie Quinet <w.iron.zombie <AT> gmail.com>

 app-emulation/lsfg-vk/lsfg-vk-9999.ebuild | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild 
b/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
index b5dc740cde..66c3327f84 100644
--- a/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
+++ b/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
@@ -3,7 +3,8 @@
 
 EAPI=8
 
-inherit cmake cargo toolchain-funcs
+CARGO_OPTIONAL=1
+inherit cargo cmake flag-o-matic toolchain-funcs
 
 DESCRIPTION="Lossless Scaling Frame Generation on Linux via DXVK/Vulkan"
 HOMEPAGE="https://github.com/PancakeTAS/lsfg-vk";
@@ -31,6 +32,7 @@ fi
 BDEPEND="
        dev-util/spirv-headers
        dev-util/vulkan-headers
+       gui? ( ${RUST_DEPEND} )
        >=media-libs/raylib-9999
 "
 DEPEND="
@@ -61,6 +63,7 @@ src_unpack() {
                oldS="${S}"
                S="${S}/ui"
                if [[ ${PV} != 9999 ]]; then
+                       A=$(printf '%s\n' "${A[@]}" | grep '\.crate$' || true) 
# Workaroud to avoid unpacking twice
                        cargo_src_unpack
                else
                        cargo_live_src_unpack
@@ -69,17 +72,6 @@ src_unpack() {
        fi
 }
 
-src_configure() {
-       tc-is-gcc && filter-lto # LTO with gcc causes segfaults at runtime
-       cmake_src_configure
-       use gui && cd ui && cargo_src_configure
-}
-
-src_compile() {
-       cmake_src_compile
-       use gui && cd ui && cargo_src_compile
-}
-
 src_prepare() {
        if [[ ${PV} != 9999 ]]; then
                mv ../dxbc-${HASH_DXBC} thirdparty/dxbc || die
@@ -129,9 +121,20 @@ target_include_directories(dxbc\
        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"
-       use gui && newbin "${S}/ui/target/release/ui" "lsfg-vk-gui"
+       use gui && newbin "${S}/ui/$(cargo_target_dir)/ui" "lsfg-vk-gui"
 }

Reply via email to