atagen

monolith

public
Star0
Watch0
440b67836dd595993e4b0354ed0e838832bb836a
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git

Blame: flake.nix

57f44a63d99fatagen2026-10-16 05:34 UTC1
{
57f44a63d99fatagen2026-10-16 05:34 UTC2
  inputs = {
57f44a63d99fatagen2026-10-16 05:34 UTC3
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
57f44a63d99fatagen2026-10-16 05:34 UTC4
    crane.url = "github:ipetkov/crane";
57f44a63d99fatagen2026-10-16 05:34 UTC5
  };
57f44a63d99fatagen2026-10-16 05:34 UTC6
57f44a63d99fatagen2026-10-16 05:34 UTC7
  outputs =
57f44a63d99fatagen2026-10-16 05:34 UTC8
    {
57f44a63d99fatagen2026-10-16 05:34 UTC9
      self,
57f44a63d99fatagen2026-10-16 05:34 UTC10
      nixpkgs,
57f44a63d99fatagen2026-10-16 05:34 UTC11
      crane,
57f44a63d99fatagen2026-10-16 05:34 UTC12
    }:
57f44a63d99fatagen2026-10-16 05:34 UTC13
    let
57f44a63d99fatagen2026-10-16 05:34 UTC14
      lib = nixpkgs.lib;
57f44a63d99fatagen2026-10-16 05:34 UTC15
      systems = [
57f44a63d99fatagen2026-10-16 05:34 UTC16
        "x86_64-linux"
57f44a63d99fatagen2026-10-16 05:34 UTC17
        "aarch64-linux"
57f44a63d99fatagen2026-10-16 05:34 UTC18
      ];
57f44a63d99fatagen2026-10-16 05:34 UTC19
      forAllSystems = f: lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
57f44a63d99fatagen2026-10-16 05:34 UTC20
57f44a63d99fatagen2026-10-16 05:34 UTC21
      mkProject =
57f44a63d99fatagen2026-10-16 05:34 UTC22
        pkgs:
57f44a63d99fatagen2026-10-16 05:34 UTC23
        let
57f44a63d99fatagen2026-10-16 05:34 UTC24
          craneLib = crane.mkLib pkgs;
57f44a63d99fatagen2026-10-16 05:34 UTC25
          src = craneLib.cleanCargoSource ./.;
57f44a63d99fatagen2026-10-16 05:34 UTC26
          lavapipeIcd = "${pkgs.mesa}/share/vulkan/icd.d/lvp_icd.${pkgs.stdenv.hostPlatform.parsed.cpu.name}.json";
57f44a63d99fatagen2026-10-16 05:34 UTC27
          commonArgs = {
57f44a63d99fatagen2026-10-16 05:34 UTC28
            inherit src;
57f44a63d99fatagen2026-10-16 05:34 UTC29
            strictDeps = true;
57f44a63d99fatagen2026-10-16 05:34 UTC30
            nativeBuildInputs = [ pkgs.pkg-config ];
57f44a63d99fatagen2026-10-16 05:34 UTC31
            buildInputs = with pkgs; [
57f44a63d99fatagen2026-10-16 05:34 UTC32
              libxkbcommon
57f44a63d99fatagen2026-10-16 05:34 UTC33
              vulkan-loader
57f44a63d99fatagen2026-10-16 05:34 UTC34
            ];
57f44a63d99fatagen2026-10-16 05:34 UTC35
          };
57f44a63d99fatagen2026-10-16 05:34 UTC36
          cargoArtifacts = craneLib.buildDepsOnly commonArgs;
57f44a63d99fatagen2026-10-16 05:34 UTC37
        in
57f44a63d99fatagen2026-10-16 05:34 UTC38
        {
57f44a63d99fatagen2026-10-16 05:34 UTC39
          inherit craneLib lavapipeIcd commonArgs;
57f44a63d99fatagen2026-10-16 05:34 UTC40
57f44a63d99fatagen2026-10-16 05:34 UTC41
          package = craneLib.buildPackage (
57f44a63d99fatagen2026-10-16 05:34 UTC42
            commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC43
            // {
57f44a63d99fatagen2026-10-16 05:34 UTC44
              inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC45
              doCheck = false;
57f44a63d99fatagen2026-10-16 05:34 UTC46
            }
57f44a63d99fatagen2026-10-16 05:34 UTC47
          );
57f44a63d99fatagen2026-10-16 05:34 UTC48
57f44a63d99fatagen2026-10-16 05:34 UTC49
          checks = {
57f44a63d99fatagen2026-10-16 05:34 UTC50
            clippy = craneLib.cargoClippy (
57f44a63d99fatagen2026-10-16 05:34 UTC51
              commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC52
              // {
57f44a63d99fatagen2026-10-16 05:34 UTC53
                inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC54
                cargoClippyExtraArgs = "--all-targets -- --deny warnings";
57f44a63d99fatagen2026-10-16 05:34 UTC55
              }
57f44a63d99fatagen2026-10-16 05:34 UTC56
            );
57f44a63d99fatagen2026-10-16 05:34 UTC57
            fmt = craneLib.cargoFmt { inherit src; };
57f44a63d99fatagen2026-10-16 05:34 UTC58
            test = craneLib.cargoTest (
57f44a63d99fatagen2026-10-16 05:34 UTC59
              commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC60
              // {
57f44a63d99fatagen2026-10-16 05:34 UTC61
                inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC62
                VK_DRIVER_FILES = lavapipeIcd;
57f44a63d99fatagen2026-10-16 05:34 UTC63
              }
57f44a63d99fatagen2026-10-16 05:34 UTC64
            );
57f44a63d99fatagen2026-10-16 05:34 UTC65
          };
57f44a63d99fatagen2026-10-16 05:34 UTC66
        };
57f44a63d99fatagen2026-10-16 05:34 UTC67
    in
57f44a63d99fatagen2026-10-16 05:34 UTC68
    {
57f44a63d99fatagen2026-10-16 05:34 UTC69
      packages = forAllSystems (pkgs: {
57f44a63d99fatagen2026-10-16 05:34 UTC70
        default = (mkProject pkgs).package;
57f44a63d99fatagen2026-10-16 05:34 UTC71
      });
57f44a63d99fatagen2026-10-16 05:34 UTC72
57f44a63d99fatagen2026-10-16 05:34 UTC73
      checks = forAllSystems (pkgs: (mkProject pkgs).checks);
57f44a63d99fatagen2026-10-16 05:34 UTC74
57f44a63d99fatagen2026-10-16 05:34 UTC75
      devShells = forAllSystems (
57f44a63d99fatagen2026-10-16 05:34 UTC76
        pkgs:
57f44a63d99fatagen2026-10-16 05:34 UTC77
        let
57f44a63d99fatagen2026-10-16 05:34 UTC78
          project = mkProject pkgs;
57f44a63d99fatagen2026-10-16 05:34 UTC79
        in
57f44a63d99fatagen2026-10-16 05:34 UTC80
        {
57f44a63d99fatagen2026-10-16 05:34 UTC81
          default = project.craneLib.devShell {
57f44a63d99fatagen2026-10-16 05:34 UTC82
            inputsFrom = [ project.package ];
57f44a63d99fatagen2026-10-16 05:34 UTC83
            packages = with pkgs; [
57f44a63d99fatagen2026-10-16 05:34 UTC84
              rust-analyzer
57f44a63d99fatagen2026-10-16 05:34 UTC85
              vulkan-tools
57f44a63d99fatagen2026-10-16 05:34 UTC86
              vulkan-validation-layers
57f44a63d99fatagen2026-10-16 05:34 UTC87
              tracy
57f44a63d99fatagen2026-10-16 05:34 UTC88
            ];
57f44a63d99fatagen2026-10-16 05:34 UTC89
            LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.vulkan-loader ];
57f44a63d99fatagen2026-10-16 05:34 UTC90
            LAVAPIPE_ICD = project.lavapipeIcd;
57f44a63d99fatagen2026-10-16 05:34 UTC91
          };
57f44a63d99fatagen2026-10-16 05:34 UTC92
        }
57f44a63d99fatagen2026-10-16 05:34 UTC93
      );
57f44a63d99fatagen2026-10-16 05:34 UTC94
57f44a63d99fatagen2026-10-16 05:34 UTC95
      formatter = forAllSystems (pkgs: pkgs.nixfmt);
57f44a63d99fatagen2026-10-16 05:34 UTC96
    };
57f44a63d99fatagen2026-10-16 05:34 UTC97
}