57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 1 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 2 | inputs = { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 3 | nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 4 | crane.url = "github:ipetkov/crane"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 5 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 6 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 7 | outputs = |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 8 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 9 | self, |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 10 | nixpkgs, |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 11 | crane, |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 12 | }: |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 13 | let |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 14 | lib = nixpkgs.lib; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 15 | systems = [ |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 16 | "x86_64-linux" |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 17 | "aarch64-linux" |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 18 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 19 | forAllSystems = f: lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system}); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 20 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 21 | mkProject = |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 22 | pkgs: |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 23 | let |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 24 | craneLib = crane.mkLib pkgs; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 25 | src = lib.cleanSourceWith { |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 26 | src = ./.; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 27 | filter = path: type: (craneLib.filterCargoSources path type) || lib.hasInfix "/shaders" path; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 28 | name = "source"; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 29 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 30 | lavapipeIcd = "${pkgs.mesa}/share/vulkan/icd.d/lvp_icd.${pkgs.stdenv.hostPlatform.parsed.cpu.name}.json"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 31 | commonArgs = { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 32 | inherit src; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 33 | pname = "monolith"; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 34 | version = "0.0.0"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 35 | strictDeps = true; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 36 | nativeBuildInputs = [ |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 37 | pkgs.pkg-config |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 38 | pkgs.glslang |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 39 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 40 | buildInputs = with pkgs; [ |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 41 | libxkbcommon |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 42 | vulkan-loader |
0c1685f1d412 | atagen | 2026-10-16 12:18 UTC | 43 | libinput |
0c1685f1d412 | atagen | 2026-10-16 12:18 UTC | 44 | seatd |
0c1685f1d412 | atagen | 2026-10-16 12:18 UTC | 45 | libgbm |
0c1685f1d412 | atagen | 2026-10-16 12:18 UTC | 46 | libdrm |
0c1685f1d412 | atagen | 2026-10-16 12:18 UTC | 47 | udev |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 48 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 49 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 50 | cargoArtifacts = craneLib.buildDepsOnly commonArgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 51 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 52 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 53 | inherit craneLib lavapipeIcd commonArgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 54 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 55 | package = craneLib.buildPackage ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 56 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 57 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 58 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 59 | doCheck = false; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 60 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 61 | ); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 62 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 63 | checks = { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 64 | clippy = craneLib.cargoClippy ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 65 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 66 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 67 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 68 | cargoClippyExtraArgs = "--all-targets -- --deny warnings"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 69 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 70 | ); |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 71 | fmt = craneLib.cargoFmt { inherit src; pname = "monolith"; version = "0.0.0"; }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 72 | test = craneLib.cargoTest ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 73 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 74 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 75 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 76 | VK_DRIVER_FILES = lavapipeIcd; |
824bf02b6e55 | atagen | 2026-10-16 09:15 UTC | 77 | LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.vulkan-loader ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 78 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 79 | ); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 80 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 81 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 82 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 83 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 84 | packages = forAllSystems (pkgs: { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 85 | default = (mkProject pkgs).package; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 86 | }); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 87 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 88 | checks = forAllSystems (pkgs: (mkProject pkgs).checks); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 89 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 90 | devShells = forAllSystems ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 91 | pkgs: |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 92 | let |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 93 | project = mkProject pkgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 94 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 95 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 96 | default = project.craneLib.devShell { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 97 | inputsFrom = [ project.package ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 98 | packages = with pkgs; [ |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 99 | rust-analyzer |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 100 | vulkan-tools |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 101 | vulkan-validation-layers |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 102 | tracy |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 103 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 104 | LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.vulkan-loader ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 105 | LAVAPIPE_ICD = project.lavapipeIcd; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 106 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 107 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 108 | ); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 109 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 110 | formatter = forAllSystems (pkgs: pkgs.nixfmt); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 111 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 112 | } |