nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 54 lines 1.5 kB view raw
1cargoInstallPostBuildHook() { 2 echo "Executing cargoInstallPostBuildHook" 3 4 releaseDir=target/@targetSubdirectory@/$cargoBuildType 5 tmpDir="${releaseDir}-tmp"; 6 7 mkdir -p $tmpDir 8 cp -r ${releaseDir}/* $tmpDir/ 9 bins=$(find $tmpDir \ 10 -maxdepth 1 \ 11 -type f \ 12 -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \)) 13 14 echo "Finished cargoInstallPostBuildHook" 15} 16 17cargoInstallHook() { 18 echo "Executing cargoInstallHook" 19 20 runHook preInstall 21 22 # rename the output dir to a architecture independent one 23 24 releaseDir=target/@targetSubdirectory@/$cargoBuildType 25 tmpDir="${releaseDir}-tmp"; 26 27 mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep "${tmpDir}$") 28 for target in "${targets[@]}"; do 29 rm -rf "$target/../../${cargoBuildType}" 30 ln -srf "$target" "$target/../../" 31 done 32 mkdir -p $out/bin $out/lib 33 34 xargs -r cp -t $out/bin <<< $bins 35 find $tmpDir \ 36 -maxdepth 1 \ 37 -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \ 38 -print0 | xargs -r -0 cp -t $out/lib 39 40 # If present, copy any .dSYM directories for debugging on darwin 41 # https://github.com/NixOS/nixpkgs/issues/330036 42 find "${releaseDir}" -maxdepth 1 -name '*.dSYM' -exec cp -RLt $out/bin/ {} + 43 44 rmdir --ignore-fail-on-non-empty $out/lib $out/bin 45 runHook postInstall 46 47 echo "Finished cargoInstallHook" 48} 49 50 51if [ -z "${dontCargoInstall-}" ] && [ -z "${installPhase-}" ]; then 52 installPhase=cargoInstallHook 53 postBuildHooks+=(cargoInstallPostBuildHook) 54fi