blob: 03a653556e2f7c5d1a66e7fc7e063ed2e06b6b9a [file] [log] [blame]
David Tolnaye02c8b32020-09-24 08:56:48 -04001load("@rules_cc//cc:defs.bzl", "cc_library")
David Tolnay63576d42020-02-25 00:07:13 -08002load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
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 Tolnay1a2683a2020-03-17 19:09:29 -070026 outs = ["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 Tolnaybffcdd52020-03-17 19:12:28 -070034 outs = ["generated.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 include_prefix = "demo/src",
43)
44
45cc_library(
46 name = "demo-sys",
47 srcs = ["src/demo.cc"],
48 copts = ["-std=c++14"],
49 deps = [
50 ":demo-include",
51 ":include",
52 ],
53)
54
55cc_library(
56 name = "demo-include",
57 hdrs = ["include/demo.h"],
58 deps = ["//:core"],
David Tolnayc19936c2020-02-22 11:48:47 -080059)