From 33cfee81777341cd335ccbe237db329b3fc7c444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 15 Apr 2017 11:14:55 +0200 Subject: [PATCH 1/3] buildRustPackage: add cargoBuildFlags --- pkgs/build-support/rust/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 91569d0c070..1287d401e4a 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -7,6 +7,7 @@ , buildInputs ? [] , cargoUpdateHook ? "" , cargoDepsHook ? "" +, cargoBuildFlags ? [] , ... } @ args: let @@ -92,9 +93,9 @@ in stdenv.mkDerivation (args // { ) '' + (args.prePatch or ""); - buildPhase = args.buildPhase or '' - echo "Running cargo build --release" - cargo build --release + buildPhase = with builtins; args.buildPhase or '' + echo "Running cargo build --release ${concatStringsSep " " cargoBuildFlags}" + cargo build --release ${concatStringsSep " " cargoBuildFlags} ''; checkPhase = args.checkPhase or '' From be70c02461e4e9e0ff163159a85edaef6188a313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 15 Apr 2017 12:42:09 +0200 Subject: [PATCH 2/3] buildRustPackage: add standard package hooks when overriding build phases also the standard hooks should be called --- pkgs/build-support/rust/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 1287d401e4a..087bc653aa3 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -27,7 +27,11 @@ in stdenv.mkDerivation (args // { buildInputs = [ git rust.cargo rust.rustc ] ++ buildInputs; - configurePhase = args.configurePhase or "true"; + configurePhase = args.configurePhase or '' + runHook preConfigure + # noop + runHook postConfigure + ''; postUnpack = '' eval "$cargoDepsHook" @@ -94,21 +98,27 @@ in stdenv.mkDerivation (args // { '' + (args.prePatch or ""); buildPhase = with builtins; args.buildPhase or '' + runHook preBuild echo "Running cargo build --release ${concatStringsSep " " cargoBuildFlags}" cargo build --release ${concatStringsSep " " cargoBuildFlags} + runHook postBuild ''; checkPhase = args.checkPhase or '' + runHook preCheck echo "Running cargo test" cargo test + runHook postCheck ''; doCheck = args.doCheck or true; installPhase = args.installPhase or '' + runHook preInstall mkdir -p $out/bin for f in $(find target/release -maxdepth 1 -type f); do cp $f $out/bin done; + runHook postInstall ''; }) From e8d5af0bd8824cafe76e134b3777ac5584509e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 15 Apr 2017 13:10:29 +0200 Subject: [PATCH 3/3] buildRustPackage: only copy executables to bin in newer rust versions also *.rlib files are put into this directory --- pkgs/build-support/rust/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 087bc653aa3..2275a065594 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -116,9 +116,7 @@ in stdenv.mkDerivation (args // { installPhase = args.installPhase or '' runHook preInstall mkdir -p $out/bin - for f in $(find target/release -maxdepth 1 -type f); do - cp $f $out/bin - done; + find target/release -maxdepth 1 -executable -exec cp "{}" $out/bin \; runHook postInstall ''; })