mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-06-04 23:15:00 -06:00
Further additions to flake (#4489)
* Create a mkderivation wrapper lambda. . . * Removed execName * Call new wrappers instead of duplicated mkDerivation. * Removed finalAttrs * Use more semi-colons * Used clang and the build environment instead of the standard gcc. * Replaced "git" with current nightly version. * Automatically pass the required environment variables into the development shell instead of requiring them as part of cmake command. * Change to an if statement because ! hurts the brain. * Added perf to devshell package list. * Added Nix formatter. . * Collision with the ++ operator in the environment variable. * Nix Format.
This commit is contained in:
parent
02010acd42
commit
4ce43a6a88
@ -57,7 +57,7 @@ nix-shell shell.nix
|
|||||||
#### Nix Flake Development Shell
|
#### Nix Flake Development Shell
|
||||||
```bash
|
```bash
|
||||||
nix develop
|
nix develop
|
||||||
cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
cmake -S . -B build/
|
||||||
ln -s ./build/compile_commands.json .
|
ln -s ./build/compile_commands.json .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
64
flake.nix
64
flake.nix
@ -14,6 +14,8 @@
|
|||||||
pkgsLinux = nixpkgs.legacyPackages.x86_64-linux;
|
pkgsLinux = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
formatter.x86_64-linux = pkgsLinux.nixpkgs-fmt;
|
||||||
|
|
||||||
devShells.x86_64-linux.default = pkgsLinux.mkShell.override { stdenv = pkgsLinux.clangStdenv; } {
|
devShells.x86_64-linux.default = pkgsLinux.mkShell.override { stdenv = pkgsLinux.clangStdenv; } {
|
||||||
packages = with pkgsLinux; [
|
packages = with pkgsLinux; [
|
||||||
clang-tools
|
clang-tools
|
||||||
@ -24,6 +26,7 @@
|
|||||||
renderdoc
|
renderdoc
|
||||||
gef
|
gef
|
||||||
strace
|
strace
|
||||||
|
perf
|
||||||
|
|
||||||
openal
|
openal
|
||||||
zlib.dev
|
zlib.dev
|
||||||
@ -67,11 +70,14 @@
|
|||||||
shellHook = ''
|
shellHook = ''
|
||||||
echo "Entering shadPS4 development shell!"
|
echo "Entering shadPS4 development shell!"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
CMAKE_C_COMPILER = "clang";
|
||||||
|
CMAKE_CXX_COMPILER = "clang++";
|
||||||
|
CMAKE_EXPORT_COMPILE_COMMANDS = "ON";
|
||||||
};
|
};
|
||||||
|
|
||||||
linux =
|
linux =
|
||||||
let
|
let
|
||||||
execName = "shadps4";
|
|
||||||
nativeInputs = with pkgsLinux; [
|
nativeInputs = with pkgsLinux; [
|
||||||
cmake
|
cmake
|
||||||
ninja
|
ninja
|
||||||
@ -114,49 +120,23 @@
|
|||||||
libressl
|
libressl
|
||||||
];
|
];
|
||||||
|
|
||||||
defaultFlags = [
|
build = { debugSymbols ? true, buildFlags }: pkgsLinux.clangStdenv.mkDerivation {
|
||||||
"-DCMAKE_INSTALL_PREFIX=$out"
|
pname = "shadps4";
|
||||||
];
|
version = "15.1";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
dontStrip = if debugSymbols then true else false;
|
||||||
|
|
||||||
|
nativeBuildInputs = nativeInputs;
|
||||||
|
buildInputs = buildInputs;
|
||||||
|
cmakeFlags = buildFlags;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
debug = pkgsLinux.stdenv.mkDerivation {
|
debug = build { buildFlags = [ "-DCMAKE_BUILD_TYPE=Debug" ]; };
|
||||||
pname = "${execName}";
|
release = build { debugSymbols = false; buildFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]; };
|
||||||
version = "git";
|
releaseWithDebugInfo = build { buildFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" ]; };
|
||||||
system = "x86_64-linux";
|
|
||||||
src = ./.;
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = nativeInputs;
|
|
||||||
buildInputs = buildInputs;
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DCMAKE_BUILD_TYPE=Debug"
|
|
||||||
] ++ [defaultFlags];
|
|
||||||
};
|
|
||||||
release = pkgsLinux.stdenv.mkDerivation {
|
|
||||||
pname = "${execName}";
|
|
||||||
version = "git";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = nativeInputs;
|
|
||||||
buildInputs = buildInputs;
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DCMAKE_BUILD_TYPE=Release"
|
|
||||||
] ++ [defaultFlags];
|
|
||||||
};
|
|
||||||
releaseWithDebugInfo = pkgsLinux.stdenv.mkDerivation {
|
|
||||||
pname = "${execName}";
|
|
||||||
version = "git";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
src = ./.;
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = nativeInputs;
|
|
||||||
buildInputs = buildInputs;
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
|
|
||||||
] ++ [defaultFlags];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user