blob: 5bc8c77419ff40061f802dad7305c3e5a2f3d6a9 [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 Tolnay717c7e62020-09-24 09:32:12 -04003load("//tools/bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
David Tolnayc19936c2020-02-22 11:48:47 -08004
5rust_binary(
David Tolnay37531b42020-09-01 15:51:38 -07006 name = "demo",
7 srcs = glob(["src/**/*.rs"]),
David Tolnayc19936c2020-02-22 11:48:47 -08008 deps = [
David Tolnaydc579902020-09-22 01:39:42 -04009 ":bridge",
David Tolnay37531b42020-09-01 15:51:38 -070010 ":demo-sys",
David Tolnayc19936c2020-02-22 11:48:47 -080011 "//:cxx",
David Tolnayc19936c2020-02-22 11:48:47 -080012 ],
13)
14
David Tolnay717c7e62020-09-24 09:32:12 -040015rust_cxx_bridge(
David Tolnaydc579902020-09-22 01:39:42 -040016 name = "bridge",
David Tolnay717c7e62020-09-24 09:32:12 -040017 src = "src/main.rs",
18 deps = [":demo-include"],
David Tolnay37531b42020-09-01 15:51:38 -070019)
20
21cc_library(
22 name = "demo-sys",
23 srcs = ["src/demo.cc"],
24 copts = ["-std=c++14"],
25 deps = [
David Tolnaydc579902020-09-22 01:39:42 -040026 ":bridge/include",
David Tolnay37531b42020-09-01 15:51:38 -070027 ":demo-include",
David Tolnay37531b42020-09-01 15:51:38 -070028 ],
29)
30
31cc_library(
32 name = "demo-include",
33 hdrs = ["include/demo.h"],
34 deps = ["//:core"],
David Tolnayc19936c2020-02-22 11:48:47 -080035)