mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-06-03 06:05:01 -06:00
Refactoring of the nix file. (#4494)
* Fix version number. * Use the packages.x86_64-linux namespace. * linux. prepend no longer required. * Created build-shadps4 module. . . . . . . . * Move dependency list to generator function parameters. * Using call package to run builder. * Pull in matching names and use inherit. * Paths need to be wrapped in a "". * Put , on the packages. * And inherit does not need any , . * Fixups. * release and releaseWithDebugInfo now use the same builder. * Set default pacakge to releaseWtihDebugInfo. * Rename to build, moved down a directory and deleted modules/ . * Seperated devshell into shell.nix . . . . . * Double ".nix" * Nix Formatting. * Included missing dependencies for shell. . . . . * Update Lock file. * Removed old unused shell.nix. * Collapse shell and build into flake.nix . * Window bar patch . . . * Removed unused patches list. * As older nix shell was removed. Also remove old documentation.
This commit is contained in:
parent
d1030d01db
commit
5f89834cb5
@ -48,12 +48,6 @@ sudo zypper install clang git cmake libasound2 libpulse-devel \
|
|||||||
vulkan-devel vulkan-validationlayers libpng-devel
|
vulkan-devel vulkan-validationlayers libpng-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
#### NixOS
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nix-shell shell.nix
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Nix Flake Development Shell
|
#### Nix Flake Development Shell
|
||||||
```bash
|
```bash
|
||||||
nix develop
|
nix develop
|
||||||
@ -63,13 +57,13 @@ ln -s ./build/compile_commands.json .
|
|||||||
|
|
||||||
#### Nix Flake Build
|
#### Nix Flake Build
|
||||||
```bash
|
```bash
|
||||||
nix build .?submodules=1#linux.debug
|
nix build .?submodules=1#debug
|
||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
nix build .?submodules=1#linux.release
|
nix build .?submodules=1#release
|
||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
nix build .?submodules=1#linux.releaseWithDebugInfo
|
nix build .?submodules=1#releaseWithDebugInfo
|
||||||
```
|
```
|
||||||
#### Other Linux distributions
|
#### Other Linux distributions
|
||||||
|
|
||||||
|
|||||||
6
flake.lock
generated
6
flake.lock
generated
@ -2,11 +2,11 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774386573,
|
"lastModified": 1779560665,
|
||||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
362
flake.nix
362
flake.nix
@ -16,127 +16,259 @@
|
|||||||
{
|
{
|
||||||
formatter.x86_64-linux = pkgsLinux.nixpkgs-fmt;
|
formatter.x86_64-linux = pkgsLinux.nixpkgs-fmt;
|
||||||
|
|
||||||
devShells.x86_64-linux.default = pkgsLinux.mkShell.override { stdenv = pkgsLinux.clangStdenv; } {
|
devShells.x86_64-linux.default =
|
||||||
packages = with pkgsLinux; [
|
|
||||||
clang-tools
|
|
||||||
cmake
|
|
||||||
pkg-config
|
|
||||||
vulkan-tools
|
|
||||||
|
|
||||||
renderdoc
|
|
||||||
gef
|
|
||||||
strace
|
|
||||||
perf
|
|
||||||
|
|
||||||
openal
|
|
||||||
zlib.dev
|
|
||||||
libedit.dev
|
|
||||||
vulkan-headers
|
|
||||||
vulkan-utility-libraries
|
|
||||||
ffmpeg.dev
|
|
||||||
fmt.dev
|
|
||||||
glslang.dev
|
|
||||||
wayland.dev
|
|
||||||
stb
|
|
||||||
libpng.dev
|
|
||||||
libuuid
|
|
||||||
|
|
||||||
sdl3.dev
|
|
||||||
alsa-lib
|
|
||||||
hidapi
|
|
||||||
ibus.dev
|
|
||||||
jack2.dev
|
|
||||||
libdecor.dev
|
|
||||||
libthai.dev
|
|
||||||
fribidi.dev
|
|
||||||
libxcb.dev
|
|
||||||
libGL.dev
|
|
||||||
libpulseaudio.dev
|
|
||||||
libusb1.dev
|
|
||||||
libx11.dev
|
|
||||||
libxcursor.dev
|
|
||||||
libxext
|
|
||||||
libxfixes.dev
|
|
||||||
libxi.dev
|
|
||||||
libxinerama.dev
|
|
||||||
libxkbcommon
|
|
||||||
libxrandr.dev
|
|
||||||
libxrender.dev
|
|
||||||
libxtst
|
|
||||||
pipewire.dev
|
|
||||||
libxscrnsaver
|
|
||||||
sndio
|
|
||||||
];
|
|
||||||
shellHook = ''
|
|
||||||
echo "Entering shadPS4 development shell!"
|
|
||||||
'';
|
|
||||||
|
|
||||||
CMAKE_C_COMPILER = "clang";
|
|
||||||
CMAKE_CXX_COMPILER = "clang++";
|
|
||||||
CMAKE_EXPORT_COMPILE_COMMANDS = "ON";
|
|
||||||
};
|
|
||||||
|
|
||||||
linux =
|
|
||||||
let
|
let
|
||||||
nativeInputs = with pkgsLinux; [
|
shell =
|
||||||
cmake
|
{ mkShell
|
||||||
ninja
|
, clangStdenv
|
||||||
pkg-config
|
, clang-tools
|
||||||
magic-enum
|
, cmake
|
||||||
fmt
|
, pkg-config
|
||||||
eudev
|
, vulkan-tools
|
||||||
];
|
, renderdoc
|
||||||
buildInputs = with pkgsLinux; [
|
, gef
|
||||||
boost
|
, strace
|
||||||
cli11
|
, perf
|
||||||
openal
|
, openal
|
||||||
nlohmann_json
|
, zlib
|
||||||
vulkan-loader
|
, libedit
|
||||||
vulkan-headers
|
, vulkan-headers
|
||||||
vulkan-memory-allocator
|
, vulkan-utility-libraries
|
||||||
toml11
|
, ffmpeg
|
||||||
zlib
|
, fmt
|
||||||
zydis
|
, glslang
|
||||||
pugixml
|
, wayland
|
||||||
ffmpeg
|
, stb
|
||||||
libpulseaudio
|
, libpng
|
||||||
pipewire
|
, libuuid
|
||||||
vulkan-loader
|
, sdl3
|
||||||
wayland
|
, alsa-lib
|
||||||
wayland-scanner
|
, hidapi
|
||||||
libX11
|
, ibus
|
||||||
libxrandr
|
, jack2
|
||||||
libxext
|
, libdecor
|
||||||
libxcursor
|
, libthai
|
||||||
libxi
|
, fribidi
|
||||||
libxscrnsaver
|
, libxcb
|
||||||
libxtst
|
, libGL
|
||||||
libxcb
|
, libpulseaudio
|
||||||
libdecor
|
, libusb1
|
||||||
libxkbcommon
|
, libx11
|
||||||
libGL
|
, libxcursor
|
||||||
libuuid
|
, libxext
|
||||||
miniz
|
, libxfixes
|
||||||
libressl
|
, libxi
|
||||||
];
|
, libxinerama
|
||||||
|
, libxkbcommon
|
||||||
|
, libxrandr
|
||||||
|
, libxrender
|
||||||
|
, libxtst
|
||||||
|
, pipewire
|
||||||
|
, libxscrnsaver
|
||||||
|
, sndio
|
||||||
|
, cli11
|
||||||
|
, nlohmann_json
|
||||||
|
, spdlog
|
||||||
|
,
|
||||||
|
}:
|
||||||
|
|
||||||
build = { debugSymbols ? true, buildFlags }: pkgsLinux.clangStdenv.mkDerivation {
|
mkShell.override { stdenv = clangStdenv; } {
|
||||||
pname = "shadps4";
|
packages = [
|
||||||
version = "15.1";
|
clang-tools
|
||||||
system = "x86_64-linux";
|
cmake
|
||||||
src = ./.;
|
pkg-config
|
||||||
|
vulkan-tools
|
||||||
|
|
||||||
dontStrip = if debugSymbols then true else false;
|
renderdoc
|
||||||
|
gef
|
||||||
|
strace
|
||||||
|
perf
|
||||||
|
|
||||||
nativeBuildInputs = nativeInputs;
|
openal
|
||||||
buildInputs = buildInputs;
|
zlib.dev
|
||||||
cmakeFlags = buildFlags;
|
libedit.dev
|
||||||
};
|
vulkan-headers
|
||||||
|
vulkan-utility-libraries
|
||||||
|
ffmpeg.dev
|
||||||
|
fmt.dev
|
||||||
|
glslang.dev
|
||||||
|
wayland.dev
|
||||||
|
stb
|
||||||
|
libpng.dev
|
||||||
|
libuuid
|
||||||
|
cli11
|
||||||
|
nlohmann_json
|
||||||
|
spdlog.dev
|
||||||
|
|
||||||
|
sdl3.dev
|
||||||
|
alsa-lib
|
||||||
|
hidapi
|
||||||
|
ibus.dev
|
||||||
|
jack2.dev
|
||||||
|
libdecor.dev
|
||||||
|
libthai.dev
|
||||||
|
fribidi.dev
|
||||||
|
libxcb.dev
|
||||||
|
libGL.dev
|
||||||
|
libpulseaudio.dev
|
||||||
|
libusb1.dev
|
||||||
|
libx11.dev
|
||||||
|
libxcursor.dev
|
||||||
|
libxext
|
||||||
|
libxfixes.dev
|
||||||
|
libxi.dev
|
||||||
|
libxinerama.dev
|
||||||
|
libxkbcommon
|
||||||
|
libxrandr.dev
|
||||||
|
libxrender.dev
|
||||||
|
libxtst
|
||||||
|
pipewire.dev
|
||||||
|
libxscrnsaver
|
||||||
|
sndio
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
echo "Entering shadPS4 development shell!"
|
||||||
|
'';
|
||||||
|
|
||||||
|
CMAKE_C_COMPILER = "clang";
|
||||||
|
CMAKE_CXX_COMPILER = "clang++";
|
||||||
|
CMAKE_EXPORT_COMPILE_COMMANDS = "ON";
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
pkgsLinux.callPackage shell { };
|
||||||
|
|
||||||
|
packages.x86_64-linux =
|
||||||
|
let
|
||||||
|
build =
|
||||||
|
{ clangStdenv
|
||||||
|
, cmake
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, magic-enum
|
||||||
|
, fmt
|
||||||
|
, eudev
|
||||||
|
, boost
|
||||||
|
, cli11
|
||||||
|
, openal
|
||||||
|
, nlohmann_json
|
||||||
|
, vulkan-loader
|
||||||
|
, vulkan-headers
|
||||||
|
, vulkan-memory-allocator
|
||||||
|
, toml11
|
||||||
|
, zlib
|
||||||
|
, zydis
|
||||||
|
, pugixml
|
||||||
|
, ffmpeg
|
||||||
|
, libpulseaudio
|
||||||
|
, pipewire
|
||||||
|
, wayland
|
||||||
|
, wayland-scanner
|
||||||
|
, libX11
|
||||||
|
, libxrandr
|
||||||
|
, libxext
|
||||||
|
, libxcursor
|
||||||
|
, libxi
|
||||||
|
, libxscrnsaver
|
||||||
|
, libxtst
|
||||||
|
, libxcb
|
||||||
|
, libdecor
|
||||||
|
, libxkbcommon
|
||||||
|
, libGL
|
||||||
|
, libuuid
|
||||||
|
, miniz
|
||||||
|
, libressl
|
||||||
|
, src
|
||||||
|
, system
|
||||||
|
, cmakeFlags
|
||||||
|
, dontStrip ? true
|
||||||
|
,
|
||||||
|
}:
|
||||||
|
|
||||||
|
clangStdenv.mkDerivation (finalAttrs: {
|
||||||
|
inherit src system cmakeFlags dontStrip;
|
||||||
|
|
||||||
|
pname = "shadps4";
|
||||||
|
version = "0.15.1";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
magic-enum
|
||||||
|
fmt
|
||||||
|
eudev
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
cli11
|
||||||
|
openal
|
||||||
|
nlohmann_json
|
||||||
|
vulkan-loader
|
||||||
|
vulkan-headers
|
||||||
|
vulkan-memory-allocator
|
||||||
|
toml11
|
||||||
|
zlib
|
||||||
|
zydis
|
||||||
|
pugixml
|
||||||
|
ffmpeg
|
||||||
|
libpulseaudio
|
||||||
|
pipewire
|
||||||
|
wayland
|
||||||
|
wayland-scanner
|
||||||
|
libX11
|
||||||
|
libxrandr
|
||||||
|
libxext
|
||||||
|
libxcursor
|
||||||
|
libxi
|
||||||
|
libxscrnsaver
|
||||||
|
libxtst
|
||||||
|
libxcb
|
||||||
|
libdecor
|
||||||
|
libxkbcommon
|
||||||
|
libGL
|
||||||
|
libuuid
|
||||||
|
miniz
|
||||||
|
libressl
|
||||||
|
];
|
||||||
|
|
||||||
|
# Cannot get the Branch name from the sandbox.
|
||||||
|
# Getting the commit hash can still be acquired through self.
|
||||||
|
patchPhase = ''
|
||||||
|
substituteInPlace src/common/scm_rev.cpp.in \
|
||||||
|
--replace-fail "@GIT_BRANCH@" "${self.shortRev or "Dirty"}"
|
||||||
|
|
||||||
|
substituteInPlace src/common/scm_rev.cpp.in \
|
||||||
|
--replace-fail "@GIT_DESC@" ""
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
debugBuild = pkgsLinux.callPackage build
|
||||||
|
{
|
||||||
|
src = "${self}";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Debug" ];
|
||||||
|
};
|
||||||
|
releaseBuild = pkgsLinux.callPackage build
|
||||||
|
{
|
||||||
|
src = "${self}";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
dontStrip = false;
|
||||||
|
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
|
||||||
|
};
|
||||||
|
releaseWithDebugInfoBuild = pkgsLinux.callPackage build
|
||||||
|
{
|
||||||
|
src = "${self}";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" ];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
debug = build { buildFlags = [ "-DCMAKE_BUILD_TYPE=Debug" ]; };
|
debug = debugBuild;
|
||||||
release = build { debugSymbols = false; buildFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]; };
|
release = releaseBuild;
|
||||||
releaseWithDebugInfo = build { buildFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" ]; };
|
releaseWithDebugInfo = releaseWithDebugInfoBuild;
|
||||||
|
default = releaseWithDebugInfoBuild;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
64
shell.nix
64
shell.nix
@ -1,64 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
with import (fetchTarball "https://github.com/nixos/nixpkgs/archive/cfd19cdc54680956dc1816ac577abba6b58b901c.tar.gz") { };
|
|
||||||
|
|
||||||
pkgs.mkShell {
|
|
||||||
name = "shadps4-build-env";
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
llvmPackages_18.clang
|
|
||||||
cmake
|
|
||||||
pkg-config
|
|
||||||
git
|
|
||||||
util-linux
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
alsa-lib
|
|
||||||
libpulseaudio
|
|
||||||
openal
|
|
||||||
zlib
|
|
||||||
libedit
|
|
||||||
udev
|
|
||||||
libevdev
|
|
||||||
SDL2
|
|
||||||
jack2
|
|
||||||
sndio
|
|
||||||
|
|
||||||
vulkan-headers
|
|
||||||
vulkan-utility-libraries
|
|
||||||
vulkan-tools
|
|
||||||
|
|
||||||
ffmpeg
|
|
||||||
fmt
|
|
||||||
glslang
|
|
||||||
libxkbcommon
|
|
||||||
wayland
|
|
||||||
xorg.libxcb
|
|
||||||
xorg.xcbutil
|
|
||||||
xorg.xcbutilkeysyms
|
|
||||||
xorg.xcbutilwm
|
|
||||||
sdl3
|
|
||||||
stb
|
|
||||||
wayland-protocols
|
|
||||||
libpng
|
|
||||||
];
|
|
||||||
|
|
||||||
shellHook = ''
|
|
||||||
echo "Entering shadPS4 dev shell"
|
|
||||||
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"}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user