diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix index 4db7cf0dc392..1e0b901105cd 100644 --- a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix +++ b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix @@ -3,17 +3,8 @@ { shortTarget, originalCargoToml, target, RUSTFLAGS }: let - cargoSrc = stdenv.mkDerivation { - name = "cargo-src"; - preferLocalBuild = true; - phases = [ "installPhase" ]; - installPhase = '' - RUSTC_SRC=${rustPlatform.rustcSrc.override { minimalContent = false; }} ORIG_CARGO=${originalCargoToml} \ - ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py} - mkdir -p $out - cp Cargo.toml $out/Cargo.toml - cp ${./Cargo.lock} $out/Cargo.lock - ''; + cargoSrc = import ../../sysroot/src.nix { + inherit stdenv rustPlatform buildPackages originalCargoToml; }; in rustPlatform.buildRustPackage { inherit target RUSTFLAGS; diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock b/pkgs/build-support/rust/sysroot/Cargo.lock similarity index 100% rename from pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock rename to pkgs/build-support/rust/sysroot/Cargo.lock diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/cargo.py b/pkgs/build-support/rust/sysroot/cargo.py similarity index 100% rename from pkgs/build-support/rust/build-rust-package/sysroot/cargo.py rename to pkgs/build-support/rust/sysroot/cargo.py diff --git a/pkgs/build-support/rust/sysroot/src.nix b/pkgs/build-support/rust/sysroot/src.nix new file mode 100644 index 000000000000..065f98286149 --- /dev/null +++ b/pkgs/build-support/rust/sysroot/src.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, rustPlatform, buildPackages +, originalCargoToml ? null +}: + +stdenv.mkDerivation { + name = "cargo-src"; + preferLocalBuild = true; + phases = [ "installPhase" ]; + installPhase = '' + export RUSTC_SRC=${rustPlatform.rustcSrc.override { minimalContent = false; }} + '' + + lib.optionalString (originalCargoToml != null) '' + export ORIG_CARGO=${originalCargoToml} + '' + + '' + ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py} + mkdir -p $out + cp Cargo.toml $out/Cargo.toml + cp ${./Cargo.lock} $out/Cargo.lock + ''; +} diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh b/pkgs/build-support/rust/sysroot/update-lockfile.sh similarity index 100% rename from pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh rename to pkgs/build-support/rust/sysroot/update-lockfile.sh