blob: 78e75e6ea59b127ce4f028b5c4573a265bed11e5 [file] [log] [blame]
David Tolnay5bde59d2020-02-09 18:59:12 -08001rust_binary(
David Tolnay37531b42020-09-01 15:51:38 -07002 name = "demo",
3 srcs = glob(["src/**/*.rs"]),
David Tolnay5bde59d2020-02-09 18:59:12 -08004 deps = [
David Tolnay37531b42020-09-01 15:51:38 -07005 ":demo-sys",
David Tolnay5bde59d2020-02-09 18:59:12 -08006 ":gen",
7 "//:cxx",
David Tolnay5bde59d2020-02-09 18:59:12 -08008 ],
9)
10
11cxx_library(
12 name = "gen",
13 srcs = [":gen-source"],
14 deps = [
David Tolnay37531b42020-09-01 15:51:38 -070015 ":demo-include",
David Tolnay5bde59d2020-02-09 18:59:12 -080016 ":include",
David Tolnay5bde59d2020-02-09 18:59:12 -080017 ],
18)
19
20genrule(
21 name = "gen-header",
22 srcs = ["src/main.rs"],
David Tolnay72739632020-09-01 16:07:52 -070023 out = "generated.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080024 cmd = "$(exe //:codegen) --header ${SRCS} > ${OUT}",
25 type = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080026)
27
28genrule(
29 name = "gen-source",
30 srcs = ["src/main.rs"],
David Tolnay72739632020-09-01 16:07:52 -070031 out = "generated.cc",
David Tolnay5bde59d2020-02-09 18:59:12 -080032 cmd = "$(exe //:codegen) ${SRCS} > ${OUT}",
33 type = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080034)
35
36cxx_library(
37 name = "include",
38 exported_headers = {
David Tolnay1a2683a2020-03-17 19:09:29 -070039 "src/main.rs.h": ":gen-header",
David Tolnay5bde59d2020-02-09 18:59:12 -080040 },
David Tolnay37531b42020-09-01 15:51:38 -070041)
42
43cxx_library(
44 name = "demo-sys",
45 srcs = ["src/demo.cc"],
46 compiler_flags = ["-std=c++14"],
47 deps = [
48 ":demo-include",
49 ":include",
50 ],
51)
52
53cxx_library(
54 name = "demo-include",
55 exported_headers = ["include/demo.h"],
56 deps = ["//:core"],
David Tolnay5bde59d2020-02-09 18:59:12 -080057)