diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2020-02-25 21:21:04 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2020-05-06 23:47:31 +0200 |
commit | 04248f606f4ebfe298bfbfed3680a2fd5dacf796 (patch) | |
tree | 27fc7eb1e5fb4cd84efc32b20e3851448fd3f692 /pkgs | |
parent | a0c2484d0e650fc8597f3ca7be4bc49192426b3a (diff) | |
download | nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar.gz nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar.bz2 nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar.lz nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar.xz nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.tar.zst nixlib-04248f606f4ebfe298bfbfed3680a2fd5dacf796.zip |
rustPlatform: increase build-speed of `checkPhase` for rust-packages
When running `cargo test --release`, the artifacts from `buildPhase` will be reused here. Previously, most of the stuff had to be recompiled without optimizations.
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/rust/default.nix | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 93770d71a10d..6cece0048333 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -162,22 +162,17 @@ stdenv.mkDerivation (args // { --frozen ${concatStringsSep " " cargoBuildFlags} ) - # rename the output dir to a architecture independent one - mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$') - for target in "''${targets[@]}"; do - rm -rf "$target/../../${buildType}" - ln -srf "$target" "$target/../../" - done - runHook postBuild ''; - checkPhase = args.checkPhase or '' + checkPhase = args.checkPhase or (let + argstr = "${stdenv.lib.optionalString (buildType == "release") "--release"} --target ${rustTarget} --frozen"; + in '' runHook preCheck - echo "Running cargo cargo test -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}" - cargo test -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"} + echo "Running cargo cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}" + cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"} runHook postCheck - ''; + ''); doCheck = args.doCheck or true; @@ -187,6 +182,13 @@ stdenv.mkDerivation (args // { installPhase = args.installPhase or '' runHook preInstall + + # rename the output dir to a architecture independent one + mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$') + for target in "''${targets[@]}"; do + rm -rf "$target/../../${buildType}" + ln -srf "$target" "$target/../../" + done mkdir -p $out/bin $out/lib find $releaseDir \ |