summaryrefslogtreecommitdiff
path: root/build_extra/flatbuffers/rust/rust_flatbuffer.gni
diff options
context:
space:
mode:
Diffstat (limited to 'build_extra/flatbuffers/rust/rust_flatbuffer.gni')
-rw-r--r--build_extra/flatbuffers/rust/rust_flatbuffer.gni44
1 files changed, 44 insertions, 0 deletions
diff --git a/build_extra/flatbuffers/rust/rust_flatbuffer.gni b/build_extra/flatbuffers/rust/rust_flatbuffer.gni
new file mode 100644
index 000000000..f5280a8d3
--- /dev/null
+++ b/build_extra/flatbuffers/rust/rust_flatbuffer.gni
@@ -0,0 +1,44 @@
+import("//build_extra/rust/rust.gni")
+
+# TODO(ry) "flatbuffer.gni" should be "flatbuffers.gni" we should be consistant
+# 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" ]
+ }
+}