blob: 7b476a5b50a76486d88bc2611f60dde938e2dcbc [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 Tolnaydc579902020-09-22 01:39:42 -04007 ":bridge",
David Tolnay37531b42020-09-01 15:51:38 -07008 ":demo-sys",
David Tolnay5bde59d2020-02-09 18:59:12 -08009 "//:cxx",
David Tolnay5bde59d2020-02-09 18:59:12 -080010 ],
11)
12
13cxx_library(
David Tolnaydc579902020-09-22 01:39:42 -040014 name = "bridge",
15 srcs = [":bridge/source"],
David Tolnay5bde59d2020-02-09 18:59:12 -080016 deps = [
David Tolnaydc579902020-09-22 01:39:42 -040017 ":bridge/include",
David Tolnay37531b42020-09-01 15:51:38 -070018 ":demo-include",
David Tolnay5bde59d2020-02-09 18:59:12 -080019 ],
20)
21
22genrule(
David Tolnaydc579902020-09-22 01:39:42 -040023 name = "bridge/header",
David Tolnay5bde59d2020-02-09 18:59:12 -080024 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(
David Tolnaydc579902020-09-22 01:39:42 -040031 name = "bridge/source",
David Tolnay5bde59d2020-02-09 18:59:12 -080032 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(
David Tolnaydc579902020-09-22 01:39:42 -040039 name = "bridge/include",
40 exported_headers = [":bridge/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 = [
David Tolnaydc579902020-09-22 01:39:42 -040048 ":bridge/include",
David Tolnay37531b42020-09-01 15:51:38 -070049 ":demo-include",
David Tolnay37531b42020-09-01 15:51:38 -070050 ],
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)