buildRustPackage: factor out install phase to cargoInstallHook
This commit is contained in:
@@ -17,16 +17,16 @@ cargoBuildHook() {
|
||||
cargo build -j $NIX_BUILD_CORES \
|
||||
--target @rustTargetPlatformSpec@ \
|
||||
--frozen \
|
||||
${cargoBuildType} \
|
||||
--${cargoBuildType} \
|
||||
${cargoBuildFlags}
|
||||
)
|
||||
|
||||
runHook postBuild
|
||||
|
||||
if [ ! -z "${buildAndTestSubdir-}" ]; then
|
||||
popd
|
||||
fi
|
||||
|
||||
runHook postBuild
|
||||
|
||||
echo "Finished cargoBuildHook"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
cargoInstallPostBuildHook() {
|
||||
echo "Executing cargoInstallPostBuildHook"
|
||||
|
||||
releaseDir=target/@shortTarget@/$cargoBuildType
|
||||
tmpDir="${releaseDir}-tmp";
|
||||
|
||||
mkdir -p $tmpDir
|
||||
cp -r ${releaseDir}/* $tmpDir/
|
||||
bins=$(find $tmpDir \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
-executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
|
||||
|
||||
echo "Finished cargoInstallPostBuildHook"
|
||||
}
|
||||
|
||||
cargoInstallHook() {
|
||||
echo "Executing cargoInstallHook"
|
||||
|
||||
runHook preInstall
|
||||
|
||||
# rename the output dir to a architecture independent one
|
||||
|
||||
releaseDir=target/@shortTarget@/$cargoBuildType
|
||||
tmpDir="${releaseDir}-tmp";
|
||||
|
||||
mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep "${tmpDir}$")
|
||||
for target in "${targets[@]}"; do
|
||||
rm -rf "$target/../../${cargoBuildType}"
|
||||
ln -srf "$target" "$target/../../"
|
||||
done
|
||||
mkdir -p $out/bin $out/lib
|
||||
|
||||
xargs -r cp -t $out/bin <<< $bins
|
||||
find $tmpDir \
|
||||
-maxdepth 1 \
|
||||
-regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
|
||||
-print0 | xargs -r -0 cp -t $out/lib
|
||||
rmdir --ignore-fail-on-non-empty $out/lib $out/bin
|
||||
runHook postInstall
|
||||
|
||||
echo "Finished cargoInstallHook"
|
||||
}
|
||||
|
||||
|
||||
if [ -z "${installPhase-}" ]; then
|
||||
installPhase=cargoInstallHook
|
||||
postBuildHooks+=(cargoInstallPostBuildHook)
|
||||
fi
|
||||
@@ -36,6 +36,15 @@ in {
|
||||
};
|
||||
} ./cargo-build-hook.sh) {};
|
||||
|
||||
cargoInstallHook = callPackage ({ }:
|
||||
makeSetupHook {
|
||||
name = "cargo-install-hook.sh";
|
||||
deps = [ ];
|
||||
substitutions = {
|
||||
inherit shortTarget;
|
||||
};
|
||||
} ./cargo-install-hook.sh) {};
|
||||
|
||||
cargoSetupHook = callPackage ({ }:
|
||||
makeSetupHook {
|
||||
name = "cargo-setup-hook.sh";
|
||||
|
||||
Reference in New Issue
Block a user