blob: e3ebb96bebc7b5d0100f4a5429660a1c99f59e65 [file] [log] [blame]
David Tolnay63576d42020-02-25 00:07:13 -08001load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
David Tolnayc19936c2020-02-22 11:48:47 -08002
3rust_binary(
David Tolnay671dff82020-02-24 16:46:55 -08004 name = "demo-rs",
David Tolnayc19936c2020-02-22 11:48:47 -08005 srcs = glob(["src/**"]),
6 deps = [
7 ":gen",
8 "//:cxx",
9 "//demo-cxx",
10 ],
11)
12
13cc_library(
14 name = "gen",
15 srcs = [":gen-source"],
16 deps = [
17 ":include",
18 "//demo-cxx:include",
19 ],
20)
21
22genrule(
23 name = "gen-header",
24 srcs = ["src/main.rs"],
David Tolnay1a2683a2020-03-17 19:09:29 -070025 outs = ["main.rs.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080026 cmd = "$(location //:codegen) --header $< > $@",
27 tools = ["//:codegen"],
28)
29
30genrule(
31 name = "gen-source",
32 srcs = ["src/main.rs"],
David Tolnaybffcdd52020-03-17 19:12:28 -070033 outs = ["generated.cc"],
David Tolnayc19936c2020-02-22 11:48:47 -080034 cmd = "$(location //:codegen) $< > $@",
35 tools = ["//:codegen"],
36)
37
38cc_library(
39 name = "include",
40 hdrs = [":gen-header"],
41 include_prefix = "demo-rs/src",
42 visibility = ["//visibility:public"],
43)