atagen

monolith

public
Star0
Watch0
b563d2da1c80c99c30a88deecf70fa7ba5c00d79
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;
b563d2da1c80atagen2026-10-16 08:25 UTC29
            pname = "monolith";
b563d2da1c80atagen2026-10-16 08:25 UTC30
            version = "0.0.0";
57f44a63d99fatagen2026-10-16 05:34 UTC31
            strictDeps = true;
57f44a63d99fatagen2026-10-16 05:34 UTC32
            nativeBuildInputs = [ pkgs.pkg-config ];
57f44a63d99fatagen2026-10-16 05:34 UTC33
            buildInputs = with pkgs; [
57f44a63d99fatagen2026-10-16 05:34 UTC34
              libxkbcommon
57f44a63d99fatagen2026-10-16 05:34 UTC35
              vulkan-loader
57f44a63d99fatagen2026-10-16 05:34 UTC36
            ];
57f44a63d99fatagen2026-10-16 05:34 UTC37
          };
57f44a63d99fatagen2026-10-16 05:34 UTC38
          cargoArtifacts = craneLib.buildDepsOnly commonArgs;
57f44a63d99fatagen2026-10-16 05:34 UTC39
        in
57f44a63d99fatagen2026-10-16 05:34 UTC40
        {
57f44a63d99fatagen2026-10-16 05:34 UTC41
          inherit craneLib lavapipeIcd commonArgs;
57f44a63d99fatagen2026-10-16 05:34 UTC42
57f44a63d99fatagen2026-10-16 05:34 UTC43
          package = craneLib.buildPackage (
57f44a63d99fatagen2026-10-16 05:34 UTC44
            commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC45
            // {
57f44a63d99fatagen2026-10-16 05:34 UTC46
              inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC47
              doCheck = false;
57f44a63d99fatagen2026-10-16 05:34 UTC48
            }
57f44a63d99fatagen2026-10-16 05:34 UTC49
          );
57f44a63d99fatagen2026-10-16 05:34 UTC50
57f44a63d99fatagen2026-10-16 05:34 UTC51
          checks = {
57f44a63d99fatagen2026-10-16 05:34 UTC52
            clippy = craneLib.cargoClippy (
57f44a63d99fatagen2026-10-16 05:34 UTC53
              commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC54
              // {
57f44a63d99fatagen2026-10-16 05:34 UTC55
                inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC56
                cargoClippyExtraArgs = "--all-targets -- --deny warnings";
57f44a63d99fatagen2026-10-16 05:34 UTC57
              }
57f44a63d99fatagen2026-10-16 05:34 UTC58
            );
b563d2da1c80atagen2026-10-16 08:25 UTC59
            fmt = craneLib.cargoFmt { inherit src; pname = "monolith"; version = "0.0.0"; };
57f44a63d99fatagen2026-10-16 05:34 UTC60
            test = craneLib.cargoTest (
57f44a63d99fatagen2026-10-16 05:34 UTC61
              commonArgs
57f44a63d99fatagen2026-10-16 05:34 UTC62
              // {
57f44a63d99fatagen2026-10-16 05:34 UTC63
                inherit cargoArtifacts;
57f44a63d99fatagen2026-10-16 05:34 UTC64
                VK_DRIVER_FILES = lavapipeIcd;
57f44a63d99fatagen2026-10-16 05:34 UTC65
              }
57f44a63d99fatagen2026-10-16 05:34 UTC66
            );
57f44a63d99fatagen2026-10-16 05:34 UTC67
          };
57f44a63d99fatagen2026-10-16 05:34 UTC68
        };
57f44a63d99fatagen2026-10-16 05:34 UTC69
    in
57f44a63d99fatagen2026-10-16 05:34 UTC70
    {
57f44a63d99fatagen2026-10-16 05:34 UTC71
      packages = forAllSystems (pkgs: {
57f44a63d99fatagen2026-10-16 05:34 UTC72
        default = (mkProject pkgs).package;
57f44a63d99fatagen2026-10-16 05:34 UTC73
      });
57f44a63d99fatagen2026-10-16 05:34 UTC74
57f44a63d99fatagen2026-10-16 05:34 UTC75
      checks = forAllSystems (pkgs: (mkProject pkgs).checks);
57f44a63d99fatagen2026-10-16 05:34 UTC76
57f44a63d99fatagen2026-10-16 05:34 UTC77
      devShells = forAllSystems (
57f44a63d99fatagen2026-10-16 05:34 UTC78
        pkgs:
57f44a63d99fatagen2026-10-16 05:34 UTC79
        let
57f44a63d99fatagen2026-10-16 05:34 UTC80
          project = mkProject pkgs;
57f44a63d99fatagen2026-10-16 05:34 UTC81
        in
57f44a63d99fatagen2026-10-16 05:34 UTC82
        {
57f44a63d99fatagen2026-10-16 05:34 UTC83
          default = project.craneLib.devShell {
57f44a63d99fatagen2026-10-16 05:34 UTC84
            inputsFrom = [ project.package ];
57f44a63d99fatagen2026-10-16 05:34 UTC85
            packages = with pkgs; [
57f44a63d99fatagen2026-10-16 05:34 UTC86
              rust-analyzer
57f44a63d99fatagen2026-10-16 05:34 UTC87
              vulkan-tools
57f44a63d99fatagen2026-10-16 05:34 UTC88
              vulkan-validation-layers
57f44a63d99fatagen2026-10-16 05:34 UTC89
              tracy
57f44a63d99fatagen2026-10-16 05:34 UTC90
            ];
57f44a63d99fatagen2026-10-16 05:34 UTC91
            LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.vulkan-loader ];
57f44a63d99fatagen2026-10-16 05:34 UTC92
            LAVAPIPE_ICD = project.lavapipeIcd;
57f44a63d99fatagen2026-10-16 05:34 UTC93
          };
57f44a63d99fatagen2026-10-16 05:34 UTC94
        }
57f44a63d99fatagen2026-10-16 05:34 UTC95
      );
57f44a63d99fatagen2026-10-16 05:34 UTC96
57f44a63d99fatagen2026-10-16 05:34 UTC97
      formatter = forAllSystems (pkgs: pkgs.nixfmt);
57f44a63d99fatagen2026-10-16 05:34 UTC98
    };
57f44a63d99fatagen2026-10-16 05:34 UTC99
}