blob: 1edc65c59cb93e4fe3909791bcdc637c46f6eda8 [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 Tolnay37531b42020-09-01 15:51:38 -07004 name = "demo",
5 srcs = glob(["src/**/*.rs"]),
David Tolnayc19936c2020-02-22 11:48:47 -08006 deps = [
David Tolnay37531b42020-09-01 15:51:38 -07007 ":demo-sys",
David Tolnayc19936c2020-02-22 11:48:47 -08008 ":gen",
9 "//:cxx",
David Tolnayc19936c2020-02-22 11:48:47 -080010 ],
11)
12
13cc_library(
14 name = "gen",
15 srcs = [":gen-source"],
16 deps = [
David Tolnay37531b42020-09-01 15:51:38 -070017 ":demo-include",
David Tolnayc19936c2020-02-22 11:48:47 -080018 ":include",
David Tolnayc19936c2020-02-22 11:48:47 -080019 ],
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"],
David Tolnay37531b42020-09-01 15:51:38 -070041 include_prefix = "demo/src",
42)
43
44cc_library(
45 name = "demo-sys",
46 srcs = ["src/demo.cc"],
47 copts = ["-std=c++14"],
48 deps = [
49 ":demo-include",
50 ":include",
51 ],
52)
53
54cc_library(
55 name = "demo-include",
56 hdrs = ["include/demo.h"],
57 deps = ["//:core"],
David Tolnayc19936c2020-02-22 11:48:47 -080058)