blob: 6e07e5eef08087ad56560ca27fa560c83947cac3 [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 Tolnaydc579902020-09-22 01:39:42 -04008 ":bridge",
David Tolnay37531b42020-09-01 15:51:38 -07009 ":demo-sys",
David Tolnayc19936c2020-02-22 11:48:47 -080010 "//:cxx",
David Tolnayc19936c2020-02-22 11:48:47 -080011 ],
12)
13
14cc_library(
David Tolnaydc579902020-09-22 01:39:42 -040015 name = "bridge",
16 srcs = [":bridge/source"],
David Tolnayc19936c2020-02-22 11:48:47 -080017 deps = [
David Tolnaydc579902020-09-22 01:39:42 -040018 ":bridge/include",
David Tolnay37531b42020-09-01 15:51:38 -070019 ":demo-include",
David Tolnayc19936c2020-02-22 11:48:47 -080020 ],
21)
22
23genrule(
David Tolnaydc579902020-09-22 01:39:42 -040024 name = "bridge/header",
David Tolnayc19936c2020-02-22 11:48:47 -080025 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(
David Tolnaydc579902020-09-22 01:39:42 -040032 name = "bridge/source",
David Tolnayc19936c2020-02-22 11:48:47 -080033 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(
David Tolnaydc579902020-09-22 01:39:42 -040040 name = "bridge/include",
41 hdrs = [":bridge/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 = [
David Tolnaydc579902020-09-22 01:39:42 -040049 ":bridge/include",
David Tolnay37531b42020-09-01 15:51:38 -070050 ":demo-include",
David Tolnay37531b42020-09-01 15:51:38 -070051 ],
52)
53
54cc_library(
55 name = "demo-include",
56 hdrs = ["include/demo.h"],
57 deps = ["//:core"],
David Tolnayc19936c2020-02-22 11:48:47 -080058)