git.delta.rocks / jrsonnet / refs/commits / 32dd70e3f006

difftreelog

source

flake.nix4.4 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.eachSystem (with flake-utils.lib.system; [x86_64-linux x86_64-windows]) (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          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 { };42          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {43            rustPlatform = pkgs.makeRustPlatform {44              rustc = rust;45              cargo = rust;46            };47          };48          jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {49            rustPlatform = pkgs.makeRustPlatform {50              rustc = rust;51              cargo = rust;52            };53            withNightlyFeatures = true;54          };55          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        packagesCross = lib.genAttrs ["mingwW64"] (crossSystem: let118          callPackage = pkgs.pkgsCross.${crossSystem}.callPackage;119        in {120          jrsonnet = callPackage ./nix/jrsonnet.nix {121            # rustPlatform = pkgs.makeRustPlatform {122            #   rustc = rust;123            #   cargo = rust;124            # };125          };126        });127        devShells.default = pkgs.mkShell {128          nativeBuildInputs = with pkgs; [129            alejandra130            rust131            cargo-edit132            cargo-asm133            cargo-outdated134            cargo-watch135            cargo-insta136            lld137            hyperfine138            graphviz139          ];140        };141      }142    );143}