forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rust_flatbuffer.gni
44 lines (37 loc) · 1.05 KB
/
rust_flatbuffer.gni
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
import("//build_extra/rust/rust.gni")
# TODO(ry) "flatbuffer.gni" should be "flatbuffers.gni" we should be consistent
# in our pluralization.
import("//build_extra/flatbuffers/flatbuffer.gni")
template("rust_flatbuffer") {
action_name = "${target_name}_gen"
source_set_name = target_name
compiled_action_foreach(action_name) {
tool = "$flatbuffers_build_location:flatc"
sources = invoker.sources
deps = []
out_dir = target_gen_dir
outputs = [
"$out_dir/{{source_name_part}}_generated.rs",
]
args = [
"--rust",
"-o",
rebase_path(out_dir, root_build_dir),
"-I",
rebase_path("//", root_build_dir),
]
args += [ "{{source}}" ]
# The deps may have steps that have to run before running flatc.
if (defined(invoker.deps)) {
deps += invoker.deps
}
}
rust_component(source_set_name) {
sources = get_target_outputs(":$action_name")
source_root = sources[0]
deps = [
":$action_name",
]
extern = [ "//build_extra/flatbuffers/rust:flatbuffers" ]
}
}