1{2 lib,3 craneLib,4 muslCC,5 targetTriple,6 withExperimentalFeatures ? false,7}:8let9 targetEnv = builtins.replaceStrings [ "-" ] [ "_" ] targetTriple;10 inherit (lib) optionalString;11in12craneLib.buildPackage {13 src = lib.cleanSourceWith {14 src = ../.;15 filter = path: type: (lib.hasSuffix ".jsonnet" path) || (craneLib.filterCargoSources path type);16 };17 pname = "jrsonnet";18 version = "current${optionalString withExperimentalFeatures "-experimental"}";19 strictDeps = true;2021 cargoExtraArgs = "--locked --features=mimalloc${optionalString withExperimentalFeatures ",experimental"} --target=${targetTriple}";2223 "CC_${targetEnv}" = "${muslCC}/bin/${muslCC.targetPrefix}cc";24 "CARGO_TARGET_${lib.toUpper targetEnv}_LINKER" = "${muslCC}/bin/${muslCC.targetPrefix}cc";2526 doNotPostBuildInstallCargoBinaries = true;27 installPhaseCommand = ''28 mkdir -p $out/bin29 cp target/${targetTriple}/release/jrsonnet $out/bin/jrsonnet30 '';31}