blob: 0640a53cf78feacc9c840901f056eabfb2433b90 [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 Tolnay0cd34292020-09-19 22:51:48 -040025 out = "src/main.rs.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 Tolnay0cd34292020-09-19 22:51:48 -040033 out = "src/main.rs.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",
David Tolnay0cd34292020-09-19 22:51:48 -040040 exported_headers = [":gen-header"],
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)