blob: c1fb42979b9bec41275d39e3eded6cb93932eaa6 [file] [log] [blame]
David Tolnaye02c8b32020-09-24 08:56:48 -04001load("@rules_cc//cc:defs.bzl", "cc_library")
David Tolnay5f6cffa2020-09-24 09:40:08 -04002load("//tools/bazel:rust.bzl", "rust_binary")
David Tolnayc19936c2020-02-22 11:48:47 -08003
4rust_binary(
David Tolnay37531b42020-09-01 15:51:38 -07005 name = "demo",
6 srcs = glob(["src/**/*.rs"]),
David Tolnayc19936c2020-02-22 11:48:47 -08007 deps = [
David Tolnay37531b42020-09-01 15:51:38 -07008 ":demo-sys",
David Tolnayc19936c2020-02-22 11:48:47 -08009 ":gen",
10 "//:cxx",
David Tolnayc19936c2020-02-22 11:48:47 -080011 ],
12)
13
14cc_library(
15 name = "gen",
16 srcs = [":gen-source"],
17 deps = [
David Tolnay37531b42020-09-01 15:51:38 -070018 ":demo-include",
David Tolnayc19936c2020-02-22 11:48:47 -080019 ":include",
David Tolnayc19936c2020-02-22 11:48:47 -080020 ],
21)
22
23genrule(
24 name = "gen-header",
25 srcs = ["src/main.rs"],
David Tolnay0cd34292020-09-19 22:51:48 -040026 outs = ["src/main.rs.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080027 cmd = "$(location //:codegen) --header $< > $@",
28 tools = ["//:codegen"],
29)
30
31genrule(
32 name = "gen-source",
33 srcs = ["src/main.rs"],
David Tolnay0cd34292020-09-19 22:51:48 -040034 outs = ["src/main.rs.cc"],
David Tolnayc19936c2020-02-22 11:48:47 -080035 cmd = "$(location //:codegen) $< > $@",
36 tools = ["//:codegen"],
37)
38
39cc_library(
40 name = "include",
41 hdrs = [":gen-header"],
David Tolnay37531b42020-09-01 15:51:38 -070042)
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)