From 8f83e22eabd201ef6186a5fc59a4ecef5f7eb638 Mon Sep 17 00:00:00 2001 From: BuyMyMojo Date: Thu, 27 Mar 2025 18:36:35 +1100 Subject: [PATCH] Create a flake for shadps4-git --- home-manager/programs/shadps4/flake.nix | 97 +++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 home-manager/programs/shadps4/flake.nix diff --git a/home-manager/programs/shadps4/flake.nix b/home-manager/programs/shadps4/flake.nix new file mode 100644 index 0000000..1dc1304 --- /dev/null +++ b/home-manager/programs/shadps4/flake.nix @@ -0,0 +1,97 @@ +{ + description = "Current git build of shadps4"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?rev=cfd19cdc54680956dc1816ac577abba6b58b901c"; + }; + + outputs = + { self, nixpkgs }: + { + + packages.x86_64-linux.default = stdenv.mkDerivation { + name = "shadps4-git"; + pname = "shadps4"; + + src = pkgs.fetchgit { + url = "https://github.com/shadps4-emu/shadPS4"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + pkgs.llvmPackages_18.clang + pkgs.cmake + pkgs.pkg-config + pkgs.git + ]; + + buildInputs = [ + pkgs.alsa-lib + pkgs.libpulseaudio + pkgs.openal + pkgs.openssl + pkgs.zlib + pkgs.libedit + pkgs.udev + pkgs.libevdev + pkgs.SDL2 + pkgs.jack2 + pkgs.sndio + pkgs.qt6.qtbase + pkgs.qt6.qttools + pkgs.qt6.qtmultimedia + + pkgs.vulkan-headers + pkgs.vulkan-utility-libraries + pkgs.vulkan-tools + + pkgs.ffmpeg + pkgs.fmt + pkgs.glslang + pkgs.libxkbcommon + pkgs.wayland + pkgs.xorg.libxcb + pkgs.xorg.xcbutil + pkgs.xorg.xcbutilkeysyms + pkgs.xorg.xcbutilwm + pkgs.sdl3 + pkgs.stb + pkgs.qt6.qtwayland + pkgs.wayland-protocols + pkgs.libpng + ]; + + buildPhase = '' + # === setup === + export QT_QPA_PLATFORM="wayland" + export QT_PLUGIN_PATH="${pkgs.qt6.qtwayland}/lib/qt-6/plugins:${pkgs.qt6.qtbase}/lib/qt-6/plugins" + export QML2_IMPORT_PATH="${pkgs.qt6.qtbase}/lib/qt-6/qml" + export CMAKE_PREFIX_PATH="${pkgs.vulkan-headers}:$CMAKE_PREFIX_PATH" + + # OpenGL + export LD_LIBRARY_PATH="${ + pkgs.lib.makeLibraryPath [ + pkgs.libglvnd + pkgs.vulkan-tools + ] + }:$LD_LIBRARY_PATH" + + export LDFLAGS="-L${pkgs.llvmPackages_18.libcxx}/lib -lc++" + export LC_ALL="C.UTF-8" + export XAUTHORITY=${builtins.getEnv "XAUTHORITY"} + # === setup === + + # === build === + cmake -S . -B build/ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ + # cmake --build ./build --parallel $(nproc) + # === build === + ''; + + installPhase = '' + cmake --install ./build --parallel $(nproc) + ''; + + }; + + }; +}