From 0413b8836ca0e285a5624fcae9261807f0fb3f3d Mon Sep 17 00:00:00 2001 From: Nojus Date: Sun, 13 Jul 2025 04:19:31 +0200 Subject: [PATCH] default.nix: several fixes and cleanup --- default.nix | 47 +++++++++++++++++------------------------------ no-download.patch | 11 +++++++++-- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/default.nix b/default.nix index a45ac11..577cbf5 100644 --- a/default.nix +++ b/default.nix @@ -1,19 +1,16 @@ { lib , fetchFromGitHub , replaceVars -, srcOnly , cmake , meson , ninja , SDL2 , glslang -#, glfw -, dxvk_2 , vulkan-headers , vulkan-loader , pkg-config , llvmPackages -#, overrideCC # lto +, python3 }: let peparse-git = fetchFromGitHub { @@ -24,20 +21,13 @@ fetchSubmodules = true; }; - dxvk-git = srcOnly (dxvk_2.overrideAttrs (old: { - src = fetchFromGitHub { - owner = "doitsujin"; - repo = "dxvk"; - rev = "v2.6.2"; - hash = "sha256-nZEi9WYhpI0WaeguoZMV4nt+nfaErvgz5RNDyyZYCJA="; - fetchSubmodules = true; - }; - })); - - # stdenv_lto = overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override { - # inherit (llvmPackages) bintools; - # }); - # this causes problems with dxvk-git which does not like llvm's ar... + dxvk-git = fetchFromGitHub { + owner = "doitsujin"; + repo = "dxvk"; + rev = "v2.6.2"; + hash = "sha256-nZEi9WYhpI0WaeguoZMV4nt+nfaErvgz5RNDyyZYCJA="; + fetchSubmodules = true; + }; in llvmPackages.stdenv.mkDerivation { pname = "lsfg-vk"; @@ -48,31 +38,28 @@ in llvmPackages.stdenv.mkDerivation { # we need to unvendor dxvk and pe-parse which would normally be downloaded from git during buildtime in the cmakefiles patches = [ (replaceVars ./no-download.patch { - dxvk-git = dxvk-git; - peparse-git = peparse-git; + inherit dxvk-git peparse-git python3; }) ]; - #cmakeFlags = [ - #"-DCMAKE_BUILD_TYPE=Release" - #"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - #"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON" # LTO - #]; + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Debug" + ]; nativeBuildInputs = [ - #llvmPackages.clang-tools # https://github.com/NixOS/nixpkgs/issues/273875 - #llvmPackages.libcxxClang # LTO: "ar: error: the 'o' modifier is only applicable to the 'x' operation" - #llvmPackages.bintools # LTO: "RANLIB-NOTFOUND, AR-NOTFOUND" + # clang-tools needs to come before clang so it can locate Vulkan headers correctly + llvmPackages.clang-tools + llvmPackages.clang cmake meson ninja pkg-config + glslang + python3 ]; buildInputs = [ - dxvk-git SDL2 - glslang vulkan-headers vulkan-loader ]; diff --git a/no-download.patch b/no-download.patch index 5e5b7ac..4afa227 100644 --- a/no-download.patch +++ b/no-download.patch @@ -1,8 +1,8 @@ diff --git a/cmake/FetchDXVK.cmake b/cmake/FetchDXVK.cmake -index f84de82..bbe9f73 100644 +index f84de82..8721531 100644 --- a/cmake/FetchDXVK.cmake +++ b/cmake/FetchDXVK.cmake -@@ -9,8 +9,7 @@ else() +@@ -9,12 +9,14 @@ else() endif() ExternalProject_Add(dxvk_git @@ -12,6 +12,13 @@ index f84de82..bbe9f73 100644 UPDATE_DISCONNECTED true USES_TERMINAL_CONFIGURE true USES_TERMINAL_BUILD true + BUILD_IN_SOURCE true ++ PATCH_COMMAND ++ sed -i -e "s|^#!.*python3|#!@python3@/bin/python3|" /subprojects/libdisplay-info/tool/gen-search-table.py && ++ chmod +x /subprojects/libdisplay-info/tool/gen-search-table.py + CONFIGURE_COMMAND + sed -i s/private://g + src/dxvk/dxvk_shader.h && diff --git a/cmake/FetchPeParse.cmake b/cmake/FetchPeParse.cmake index df7879b..31a4b87 100644 --- a/cmake/FetchPeParse.cmake