git.delta.rocks / jrsonnet / refs/commits / d9720cb84a3c

difftreelog

source

flake.nix4.3 KiBsourcehistory
1{2  description = "Jrsonnet";3  inputs = {4    nixpkgs.url = "github:nixos/nixpkgs";5    flake-utils.url = "github:numtide/flake-utils";6    rust-overlay = {7      url = "github:oxalica/rust-overlay";8      inputs.nixpkgs.follows = "nixpkgs";9      inputs.flake-utils.follows = "flake-utils";10    };11  };12  outputs = {13    nixpkgs,14    flake-utils,15    rust-overlay,16    ...17  }:18    flake-utils.lib.eachDefaultSystem (19      system: let20        pkgs = import nixpkgs {21          inherit system;22          overlays = [rust-overlay.overlays.default];23          config.allowUnsupportedSystem = true;24        };25        lib = pkgs.lib;26        rust =27          (pkgs.rustChannelOf {28            date = "2024-01-10";29            channel = "nightly";30          })31          .default32          .override {33            extensions = ["rust-src" "miri" "rust-analyzer" "clippy"];34          };35      in {36        packages = rec {37          default = jrsonnet;38          go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix {};39          sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix {};40          jsonnet = pkgs.callPackage ./nix/jsonnet.nix {};41          # I didn't managed to build it, and nixpkgs version is marked as broken42          # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };43          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {44            rustPlatform = pkgs.makeRustPlatform {45              rustc = rust;46              cargo = rust;47            };48          };49          jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {50            rustPlatform = pkgs.makeRustPlatform {51              rustc = rust;52              cargo = rust;53            };54            withNightlyFeatures = true;55          };56          jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {57            rustPlatform = pkgs.makeRustPlatform {58              rustc = rust;59              cargo = rust;60            };61          };6263          benchmarks = pkgs.callPackage ./nix/benchmarks.nix {64            inherit go-jsonnet sjsonnet jsonnet;65            jrsonnetVariants = [66              {67                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};68                name = "";69              }70            ];71          };72          benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {73            inherit go-jsonnet sjsonnet jsonnet;74            quick = true;75            jrsonnetVariants = [76              {77                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};78                name = "";79              }80            ];81          };82          benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {83            inherit go-jsonnet sjsonnet jsonnet;84            jrsonnetVariants = [85              {86                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};87                name = "current";88              }89              {90                drv = jrsonnet-nightly.overrideAttrs {forBenchmarks = true;};91                name = "current-nightly";92              }93              {94                drv = jrsonnet-release.overrideAttrs {forBenchmarks = true;};95                name = "release";96              }97            ];98          };99          benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {100            inherit go-jsonnet sjsonnet jsonnet;101            quick = true;102            jrsonnetVariants = [103              {104                drv = jrsonnet;105                name = "current";106              }107              {108                drv = jrsonnet-nightly;109                name = "current-nightly";110              }111              {112                drv = jrsonnet-release;113                name = "release";114              }115            ];116          };117        };118        packagesCross = lib.genAttrs ["mingwW64"] (crossSystem: let119          callPackage = pkgs.pkgsCross.${crossSystem}.callPackage;120        in {121          jrsonnet = callPackage ./nix/jrsonnet.nix {122            # rustPlatform = pkgs.makeRustPlatform {123            #   rustc = rust;124            #   cargo = rust;125            # };126          };127        });128        devShells.default = pkgs.mkShell {129          nativeBuildInputs = with pkgs; [130            alejandra131            rust132            cargo-edit133            cargo-asm134            cargo-outdated135            cargo-watch136            cargo-insta137            lld138            hyperfine139            graphviz140          ];141        };142      }143    );144}