diff options
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate/install-crate.nix')
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate/install-crate.nix | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/install-crate.nix b/pkgs/build-support/rust/build-rust-crate/install-crate.nix index 3b0282621ea..934c3a03176 100644 --- a/pkgs/build-support/rust/build-rust-crate/install-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/install-crate.nix @@ -1,24 +1,26 @@ crateName: metadata: '' runHook preInstall - mkdir -p $out + # always create $out even if we do not have binaries. We are detecting binary targets during compilation, if those are missing there is no way to only have $lib + mkdir $out if [[ -s target/env ]]; then - cp target/env $out/env + mkdir -p $lib + cp target/env $lib/env fi if [[ -s target/link.final ]]; then - mkdir -p $out/lib - cp target/link.final $out/lib/link + mkdir -p $lib/lib + cp target/link.final $lib/lib/link fi if [[ "$(ls -A target/lib)" ]]; then - mkdir -p $out/lib - cp target/lib/* $out/lib #*/ - for lib in $out/lib/*.so $out/lib/*.dylib; do #*/ - ln -s $lib $(echo $lib | sed -e "s/-${metadata}//") + mkdir -p $lib/lib + cp target/lib/* $lib/lib #*/ + for library in $lib/lib/*.so $lib/lib/*.dylib; do #*/ + ln -s $library $(echo $library | sed -e "s/-${metadata}//") done fi if [[ "$(ls -A target/build)" ]]; then # */ - mkdir -p $out/lib - cp -r target/build/* $out/lib # */ + mkdir -p $lib/lib + cp -r target/build/* $lib/lib # */ fi if [[ -d target/bin ]]; then if [[ "$(ls -A target/bin)" ]]; then |