@@ -9,13 +9,14 @@ template("build_crate") {
9
9
defined (invoker [" ${ crate } _exe" ]),
10
10
" Please add ${ crate } _exe to //brave/tools/crates/config.gni (or to $crate itself)!" )
11
11
crate_exe = invoker [" ${ crate } _exe" ]
12
+ crate_target_dir = get_path_info (get_path_info (crate_exe , " dir" ), " dir" )
12
13
13
14
action (" build_$crate " ) {
14
15
assert (current_toolchain == host_toolchain )
15
16
16
17
forward_variables_from (invoker , [ " deps" ])
17
18
18
- script = " //build/gn_run_binary .py"
19
+ script = " //brave/script/build_crate .py"
19
20
20
21
cargo_exe = " //third_party/rust-toolchain/bin/cargo"
21
22
if (host_os == " win" ) {
@@ -24,10 +25,15 @@ template("build_crate") {
24
25
25
26
inputs = [
26
27
cargo_exe ,
28
+ " .cargo/config.toml" ,
27
29
" Cargo.lock" ,
30
+ " Cargo.toml" ,
28
31
]
29
32
30
- outputs = [ crate_exe ]
33
+ outputs = [
34
+ crate_exe ,
35
+ " $crate_target_dir /.stamp" ,
36
+ ]
31
37
32
38
# To avoid irreproducible builds,
33
39
# `build_crate`s MUST always build with `cargo vendor`ed deps,
@@ -36,6 +42,8 @@ template("build_crate") {
36
42
# --frozen (--locked + --offline)
37
43
# when running `cargo build`.
38
44
args = [
45
+ " --temp_dir_path" ,
46
+ rebase_path (crate_target_dir ),
39
47
rebase_path (cargo_exe ),
40
48
" build" ,
41
49
" --quiet" ,
@@ -45,7 +53,7 @@ template("build_crate") {
45
53
" --config" ,
46
54
rebase_path (" .cargo/config.toml" ),
47
55
" --target-dir" ,
48
- rebase_path (get_path_info ( crate_exe , " dir " ) + " /.. " ),
56
+ rebase_path (crate_target_dir ),
49
57
" --frozen" ,
50
58
" --package" ,
51
59
string_replace (crate , " _" , " -" ),
0 commit comments