commit:     0a0faef73f608167525081373b31bc8b8a5d1620
Author:     Charlie Quinet <w.iron.zombie <AT> gmail <DOT> com>
AuthorDate: Mon Jul 14 01:13:25 2025 +0000
Commit:     Quinet Charlie <w.iron.zombie <AT> gmail <DOT> com>
CommitDate: Mon Jul 14 01:28:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0a0faef7

app-emulation/lsfg-vk: new ebuild

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

 app-emulation/lsfg-vk/lsfg-vk-9999.ebuild | 58 +++++++++++++++++++++++++++++++
 app-emulation/lsfg-vk/metadata.xml        | 12 +++++++
 2 files changed, 70 insertions(+)

diff --git a/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild 
b/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
new file mode 100644
index 0000000000..0dd3b2122a
--- /dev/null
+++ b/app-emulation/lsfg-vk/lsfg-vk-9999.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Lossless Scaling Frame Generation on Linux via DXVK/Vulkan"
+HOMEPAGE="https://github.com/PancakeTAS/lsfg-vk";
+LICENSE="MIT"
+SLOT="0"
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/PancakeTAS/lsfg-vk";
+       EGIT_SUBMODULES=(
+               dxbc
+               pe-parse
+       )
+else
+       HASH_DXBC="04ca5e9ae5fef6c0c65ea72bbaa7375327f11454"
+       PEPARSE_VERSION="2.1.1"
+       SRC_URI="
+               
https://github.com/PancakeTAS/lsfg-vk/archive/refs/tags/v${PV}.tar.gz
+               https://github.com/PancakeTAS/dxbc/archive/${HASH_DXBC}.tar.gz
+               
https://github.com/trailofbits/pe-parse/archive/refs/tags/v${PEPARSE_VERSION}.tar.gz
+       "
+fi
+
+BDEPEND="
+       dev-util/vulkan-headers
+"
+DEPEND="
+       media-libs/vulkan-loader
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+       if [[ ${PV} != 9999 ]]; then
+               mv ../dxbc-${HASH_DXBC} dxbc || die
+               mv ../pe-parse-${PEPARSE_VERSION} pe-parse || die
+       fi
+
+       sed -i 's/^option(BUILD_SHARED_LIBS "Build Shared Libraries" 
ON)$/option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)/' 
pe-parse/CMakeLists.txt || die
+       sed -i 's|add_library(${PROJECT_NAME} 
${PEPARSERLIB_SOURCEFILES})|add_library(${PROJECT_NAME} STATIC 
${PEPARSERLIB_SOURCEFILES})|' pe-parse/pe-parser-library/CMakeLists.txt || die
+
+       sed -i '/^set(CMAKE_C_COMPILER clang)$/d; /^set(CMAKE_CXX_COMPILER 
clang++)$/d' CMakeLists.txt dxbc/CMakeLists.txt || die
+       sed -i 's|"library_path": 
"\.\./\.\./\.\./lib/liblsfg-vk\.so"|"library_path": "liblsfg-vk.so"|' 
VkLayer_LS_frame_generation.json || die
+
+       eapply_user
+       cmake_src_prepare
+}
+
+src_install() {
+       insinto "/usr/share/vulkan/implicit_layer.d/"
+       doins "${S}/VkLayer_LS_frame_generation.json"
+       dolib.so "${WORKDIR}/${P}_build/liblsfg-vk.so"
+}

diff --git a/app-emulation/lsfg-vk/metadata.xml 
b/app-emulation/lsfg-vk/metadata.xml
new file mode 100644
index 0000000000..65ccfa2e6f
--- /dev/null
+++ b/app-emulation/lsfg-vk/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'https://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+    <maintainer type="person">
+        <email>[email protected]</email>
+        <name>Charlie Quinet</name>
+        <description>Username404-59</description>
+    </maintainer>
+    <upstream>
+        <remote-id type="github">PancakeTAS/lsfg-vk</remote-id>
+    </upstream>
+</pkgmetadata>

Reply via email to