git.delta.rocks / jrsonnet / refs/commits / 8f8545cd220d

difftreelog

source

flake.nix4.0 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 = {9        nixpkgs.follows = "nixpkgs";10        flake-utils.follows = "flake-utils";11      };12    };13    crane = {14      url = "github:ipetkov/crane";15      inputs.nixpkgs.follows = "nixpkgs";16    };17  };18  outputs = {19    nixpkgs,20    flake-utils,21    rust-overlay,22    crane,23    ...24  }:25    flake-utils.lib.eachDefaultSystem (26      system: let27        pkgs = import nixpkgs {28          inherit system;29          overlays = [rust-overlay.overlays.default];30          config.allowUnsupportedSystem = true;31        };32        rust = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;33        craneLib = (crane.mkLib pkgs).overrideToolchain rust;34      in {35        packages = rec {36          default = jrsonnet;37          go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix {};38          sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix {};39          jsonnet = pkgs.callPackage ./nix/jsonnet.nix {};40          # I didn't managed to build it, and nixpkgs version is marked as broken41          # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };4243          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {44            inherit craneLib;45          };46          jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {47            inherit craneLib;48            withNightlyFeatures = true;49          };50          jrsonnet-experimental = pkgs.callPackage ./nix/jrsonnet.nix {51            inherit craneLib;52            withExperimentalFeatures = true;53          };5455          jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {56            rustPlatform = pkgs.makeRustPlatform {57              rustc = rust;58              cargo = rust;59            };60          };6162          benchmarks = pkgs.callPackage ./nix/benchmarks.nix {63            inherit go-jsonnet sjsonnet jsonnet;64            jrsonnetVariants = [65              {66                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};67                name = "";68              }69            ];70          };71          benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {72            inherit go-jsonnet sjsonnet jsonnet;73            quick = true;74            jrsonnetVariants = [75              {76                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};77                name = "";78              }79            ];80          };81          benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {82            inherit go-jsonnet sjsonnet jsonnet;83            jrsonnetVariants = [84              {85                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};86                name = "current";87              }88              {89                drv = jrsonnet-nightly.overrideAttrs {forBenchmarks = true;};90                name = "current-nightly";91              }92              {93                drv = jrsonnet-release.overrideAttrs {forBenchmarks = true;};94                name = "release";95              }96            ];97          };98          benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {99            inherit go-jsonnet sjsonnet jsonnet;100            quick = true;101            jrsonnetVariants = [102              {103                drv = jrsonnet;104                name = "current";105              }106              {107                drv = jrsonnet-nightly;108                name = "current-nightly";109              }110              {111                drv = jrsonnet-release;112                name = "release";113              }114            ];115          };116        };117        devShells.default = craneLib.devShell {118          nativeBuildInputs = with pkgs; [119            alejandra120            cargo-edit121            cargo-asm122            cargo-outdated123            cargo-watch124            cargo-insta125            lld126            hyperfine127            graphviz128          ];129        };130      }131    );132}