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; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 25 | src = craneLib.cleanCargoSource ./.; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 26 | lavapipeIcd = "${pkgs.mesa}/share/vulkan/icd.d/lvp_icd.${pkgs.stdenv.hostPlatform.parsed.cpu.name}.json"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 27 | commonArgs = { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 28 | inherit src; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 29 | pname = "monolith"; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 30 | version = "0.0.0"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 31 | strictDeps = true; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 32 | nativeBuildInputs = [ pkgs.pkg-config ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 33 | buildInputs = with pkgs; [ |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 34 | libxkbcommon |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 35 | vulkan-loader |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 36 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 37 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 38 | cargoArtifacts = craneLib.buildDepsOnly commonArgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 39 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 40 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 41 | inherit craneLib lavapipeIcd commonArgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 42 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 43 | package = craneLib.buildPackage ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 44 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 45 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 46 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 47 | doCheck = false; |
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 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 51 | checks = { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 52 | clippy = craneLib.cargoClippy ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 53 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 54 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 55 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 56 | cargoClippyExtraArgs = "--all-targets -- --deny warnings"; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 57 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 58 | ); |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 59 | fmt = craneLib.cargoFmt { inherit src; pname = "monolith"; version = "0.0.0"; }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 60 | test = craneLib.cargoTest ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 61 | commonArgs |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 62 | // { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 63 | inherit cargoArtifacts; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 64 | VK_DRIVER_FILES = lavapipeIcd; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 65 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 66 | ); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 67 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 68 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 69 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 70 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 71 | packages = forAllSystems (pkgs: { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 72 | default = (mkProject pkgs).package; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 73 | }); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 74 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 75 | checks = forAllSystems (pkgs: (mkProject pkgs).checks); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 76 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 77 | devShells = forAllSystems ( |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 78 | pkgs: |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 79 | let |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 80 | project = mkProject pkgs; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 81 | in |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 82 | { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 83 | default = project.craneLib.devShell { |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 84 | inputsFrom = [ project.package ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 85 | packages = with pkgs; [ |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 86 | rust-analyzer |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 87 | vulkan-tools |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 88 | vulkan-validation-layers |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 89 | tracy |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 90 | ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 91 | LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.vulkan-loader ]; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 92 | LAVAPIPE_ICD = project.lavapipeIcd; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 93 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 94 | } |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 95 | ); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 96 | |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 97 | formatter = forAllSystems (pkgs: pkgs.nixfmt); |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 98 | }; |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 99 | } |