blob: eebe5c2239e8ef9b70167d82579fc86ad277d081 [file] [log] [blame]
David Tolnay55151b42020-09-22 01:27:30 -04001load("//tools/buck:genrule.bzl", "genrule")
2
David Tolnay5bde59d2020-02-09 18:59:12 -08003rust_binary(
David Tolnay37531b42020-09-01 15:51:38 -07004 name = "demo",
5 srcs = glob(["src/**/*.rs"]),
David Tolnay5bde59d2020-02-09 18:59:12 -08006 deps = [
David Tolnay37531b42020-09-01 15:51:38 -07007 ":demo-sys",
David Tolnay5bde59d2020-02-09 18:59:12 -08008 ":gen",
9 "//:cxx",
David Tolnay5bde59d2020-02-09 18:59:12 -080010 ],
11)
12
13cxx_library(
14 name = "gen",
15 srcs = [":gen-source"],
16 deps = [
David Tolnay37531b42020-09-01 15:51:38 -070017 ":demo-include",
David Tolnay5bde59d2020-02-09 18:59:12 -080018 ":include",
David Tolnay5bde59d2020-02-09 18:59:12 -080019 ],
20)
21
22genrule(
23 name = "gen-header",
24 srcs = ["src/main.rs"],
David Tolnay72739632020-09-01 16:07:52 -070025 out = "generated.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080026 cmd = "$(exe //:codegen) --header ${SRCS} > ${OUT}",
27 type = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080028)
29
30genrule(
31 name = "gen-source",
32 srcs = ["src/main.rs"],
David Tolnay72739632020-09-01 16:07:52 -070033 out = "generated.cc",
David Tolnay5bde59d2020-02-09 18:59:12 -080034 cmd = "$(exe //:codegen) ${SRCS} > ${OUT}",
35 type = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080036)
37
38cxx_library(
39 name = "include",
40 exported_headers = {
David Tolnay1a2683a2020-03-17 19:09:29 -070041 "src/main.rs.h": ":gen-header",
David Tolnay5bde59d2020-02-09 18:59:12 -080042 },
David Tolnay37531b42020-09-01 15:51:38 -070043)
44
45cxx_library(
46 name = "demo-sys",
47 srcs = ["src/demo.cc"],
48 compiler_flags = ["-std=c++14"],
49 deps = [
50 ":demo-include",
51 ":include",
52 ],
53)
54
55cxx_library(
56 name = "demo-include",
57 exported_headers = ["include/demo.h"],
58 deps = ["//:core"],
David Tolnay5bde59d2020-02-09 18:59:12 -080059)