110 lines
2.8 KiB
Nix
110 lines
2.8 KiB
Nix
{
|
|
description = "NixOS configuration for Cobray";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-gaming = {
|
|
url = "github:fufexan/nix-gaming"; # for glorious eggrolls
|
|
};
|
|
rpcs3-latest = {
|
|
url = "github:RPCS3/rpcs3";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
home-manager,
|
|
nix-gaming,
|
|
rpcs3-latest,
|
|
...
|
|
} @ inputs: let
|
|
system = "x86_64-linux";
|
|
customPkgsOverlay = final: prev: let
|
|
customPkgs = import ./pkgs {
|
|
pkgs = prev;
|
|
lib = prev.lib;
|
|
};
|
|
in
|
|
customPkgs
|
|
// {
|
|
pugixml = prev.pugixml.overrideAttrs (oldAttrs: rec {
|
|
version = "1.15";
|
|
src = prev.fetchurl {
|
|
url = "https://github.com/zeux/pugixml/releases/download/v${version}/pugixml-${version}.tar.gz";
|
|
sha256 = "ZVreV/pwP7QhwuuaARO1BkvdsUXUFd0fiMeTU9kNURo=";
|
|
};
|
|
});
|
|
SDL3 = prev.stdenv.mkDerivation rec {
|
|
pname = "SDL3";
|
|
version = "3.1.3";
|
|
src = prev.fetchFromGitHub {
|
|
owner = "libsdl-org";
|
|
repo = "SDL";
|
|
rev = "preview-${version}";
|
|
sha256 = "XQwcl/udA+r5HJs21K+GtZ2GIXfXUHjYTXFYW4Yx+Do=";
|
|
};
|
|
nativeBuildInputs = [prev.cmake];
|
|
buildInputs = [
|
|
prev.libGL
|
|
prev.xorg.libX11
|
|
prev.xorg.libXext
|
|
prev.alsa-lib
|
|
];
|
|
cmakeFlags = [
|
|
"-DSDL_STATIC=OFF"
|
|
"-DSDL_SHARED=ON"
|
|
];
|
|
};
|
|
rpcs3 = prev.rpcs3.overrideAttrs (oldAttrs: {
|
|
nativeBuildInputs =
|
|
(oldAttrs.nativeBuildInputs or [])
|
|
++ [
|
|
prev.llvmPackages_18.llvm.dev
|
|
prev.llvmPackages_18.clang
|
|
];
|
|
buildInputs =
|
|
(oldAttrs.buildInputs or [])
|
|
++ [
|
|
prev.llvmPackages_18.llvm
|
|
prev.llvmPackages_18.libclang
|
|
final.SDL3
|
|
];
|
|
});
|
|
};
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
overlays = [customPkgsOverlay];
|
|
};
|
|
lib = nixpkgs.lib;
|
|
|
|
rpcs3_latest = pkgs.rpcs3.overrideAttrs (oldAttrs: {
|
|
src = rpcs3-latest;
|
|
});
|
|
in {
|
|
nixosConfigurations = {
|
|
nixos = lib.nixosSystem {
|
|
inherit system;
|
|
specialArgs = {inherit inputs;};
|
|
modules = [
|
|
{nixpkgs.overlays = [customPkgsOverlay];}
|
|
./hosts/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
homeConfigurations = {
|
|
"cobray" = home-manager.lib.homeManagerConfiguration {
|
|
inherit pkgs;
|
|
extraSpecialArgs = {inherit inputs rpcs3_latest;};
|
|
modules = [./home-manager/cobray.nix];
|
|
};
|
|
};
|
|
};
|
|
}
|