mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-20 09:00:41 +03:00

The main purpose of `makeRustPlatform` is to enable users to override the `rustc` and `cargo` versions used by the `rustPlatform` derivations. In all attributes of the result of `makeRustPlatform`, `rustc` and/or `cargo` are overriden, except in `importCargoLock`. I think this is an oversight / bug, and passing the received cargo derivation is the right behaviour. If `importCargoLock` always using the global cargo package even in `makeRustPlatform` is the intended behaviour, I think it should be documented at least in a comment.
35 lines
1 KiB
Nix
35 lines
1 KiB
Nix
{ buildPackages, callPackage, stdenv, runCommand }@prev:
|
|
|
|
{ rustc, cargo, stdenv ? prev.stdenv, ... }:
|
|
|
|
rec {
|
|
rust = {
|
|
inherit rustc cargo;
|
|
};
|
|
|
|
fetchCargoTarball = buildPackages.callPackage ../../../build-support/rust/fetch-cargo-tarball {
|
|
git = buildPackages.gitMinimal;
|
|
inherit cargo;
|
|
};
|
|
|
|
buildRustPackage = callPackage ../../../build-support/rust/build-rust-package {
|
|
git = buildPackages.gitMinimal;
|
|
inherit stdenv cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook
|
|
fetchCargoTarball importCargoLock rustc;
|
|
};
|
|
|
|
importCargoLock = buildPackages.callPackage ../../../build-support/rust/import-cargo-lock.nix { inherit cargo; };
|
|
|
|
rustcSrc = callPackage ./rust-src.nix {
|
|
inherit runCommand rustc;
|
|
};
|
|
|
|
rustLibSrc = callPackage ./rust-lib-src.nix {
|
|
inherit runCommand rustc;
|
|
};
|
|
|
|
# Hooks
|
|
inherit (callPackage ../../../build-support/rust/hooks {
|
|
inherit stdenv cargo rustc;
|
|
}) cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook maturinBuildHook bindgenHook;
|
|
}
|