1{
2 lib,
3 stdenv,
4 makeWrapper,
5 mrustc,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "mrustc-minicargo";
10 inherit (mrustc) src version;
11
12 strictDeps = true;
13 nativeBuildInputs = [ makeWrapper ];
14
15 enableParallelBuilding = true;
16 makefile = "minicargo.mk";
17 makeFlags = [ "bin/minicargo" ];
18
19 installPhase = ''
20 runHook preInstall
21 mkdir -p $out/bin
22 cp bin/minicargo $out/bin
23
24 # without it, minicargo defaults to "<minicargo_path>/../bin/mrustc"
25 wrapProgram "$out/bin/minicargo" --set MRUSTC_PATH ${mrustc}/bin/mrustc
26 runHook postInstall
27 '';
28
29 meta = with lib; {
30 description = "Minimalist builder for Rust";
31 mainProgram = "minicargo";
32 longDescription = ''
33 A minimalist builder for Rust, similar to Cargo but written in C++.
34 Designed to work with mrustc to build Rust projects
35 (like the Rust compiler itself).
36 '';
37 inherit (src.meta) homepage;
38 license = licenses.mit;
39 maintainers = with maintainers; [
40 progval
41 r-burns
42 ];
43 platforms = [ "x86_64-linux" ];
44 };
45}