1{ lib, stdenv, rust, rustPlatform, buildPackages }:
2
3{ shortTarget, originalCargoToml, target, RUSTFLAGS }:
4
5let
6 cargoSrc = import ../../sysroot/src.nix {
7 inherit lib stdenv rustPlatform buildPackages originalCargoToml;
8 };
9in rustPlatform.buildRustPackage {
10 inherit target RUSTFLAGS;
11
12 name = "custom-sysroot";
13 src = cargoSrc;
14
15 RUSTC_BOOTSTRAP = 1;
16 __internal_dontAddSysroot = true;
17 cargoSha256 = "sha256-zgkwevitxsu1C4OgGTsqNSc0gDxaNXYK1WPbfER48d0=";
18
19 doCheck = false;
20
21 installPhase = ''
22 export LIBS_DIR=$out/lib/rustlib/${shortTarget}/lib
23 mkdir -p $LIBS_DIR
24 for f in target/${shortTarget}/release/deps/*.{rlib,rmeta}; do
25 cp $f $LIBS_DIR
26 done
27
28 export RUST_SYSROOT=$(rustc --print=sysroot)
29 host=${rust.toRustTarget stdenv.buildPlatform}
30 cp -r $RUST_SYSROOT/lib/rustlib/$host $out
31 '';
32
33 # allows support for cross-compilation
34 meta.platforms = lib.platforms.all;
35}