blob: bf6c1eb2bb993d895b5227adb8422c1551c09295 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
{ pkgs, runExeclineLocal, getBins }:
let
bins = getBins pkgs.coreutils [ "ln" ];
writeRustSimple = name: args: srcFile:
linkTo name "${writeRustSimpleBin name args srcFile}/bin/${name}";
linkTo = name: path: runExeclineLocal name {} [
"importas" "out" "out"
bins.ln "-sT" path "$out"
];
writeRustSimpleBin = name: { dependencies ? [], ... }@args: srcFile: pkgs.buildRustCrate ({
pname = name;
version = "1.0.0";
crateName = name;
crateBin = [ name ];
dependencies = dependencies;
src = pkgs.runCommandLocal "write-main.rs" {} ''
mkdir -p $out/src/bin
cp ${srcFile} $out/src/bin/${name}.rs
find $out
'';
} // args);
writeRustSimpleLib = name: { dependencies ? [], ... }@args: srcFile: pkgs.buildRustCrate ({
pname = name;
version = "1.0.0";
crateName = name;
dependencies = dependencies;
src = pkgs.runCommandLocal "write-lib.rs" {} ''
mkdir -p $out/src
cp ${srcFile} $out/src/lib.rs
find $out
'';
} // args);
in {
inherit
writeRustSimple
writeRustSimpleBin
writeRustSimpleLib
;
}
|