blob: d63fea7ee0fd3dd9a368a32bb3c54daa37ed6ad3 [file] [log] [blame]
David Tolnay63576d42020-02-25 00:07:13 -08001load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
David Tolnayc19936c2020-02-22 11:48:47 -08002
3rust_library(
4 name = "cxx",
5 srcs = glob(["src/**/*.rs"]),
David Tolnayc19936c2020-02-22 11:48:47 -08006 visibility = ["//visibility:public"],
7 deps = [
David Tolnay671dff82020-02-24 16:46:55 -08008 ":core-lib",
9 ":cxxbridge-macro",
David Tolnay671dff82020-02-24 16:46:55 -080010 "//third-party:link-cplusplus",
David Tolnayc19936c2020-02-22 11:48:47 -080011 ],
12)
13
14rust_binary(
15 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070016 srcs = glob(["gen/cmd/src/**/*.rs"]),
17 data = ["gen/cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080018 visibility = ["//visibility:public"],
19 deps = [
20 "//third-party:anyhow",
David Tolnay671dff82020-02-24 16:46:55 -080021 "//third-party:codespan-reporting",
22 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080023 "//third-party:quote",
24 "//third-party:structopt",
25 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080026 ],
27)
28
29cc_library(
30 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070031 hdrs = ["include/cxx.h"],
32 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080033 strip_include_prefix = "include",
34 visibility = ["//visibility:public"],
35)
36
37cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080038 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070039 srcs = ["src/cxx.cc"],
40 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080041)
42
43rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080044 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080045 srcs = glob(["macro/src/**"]),
46 crate_type = "proc-macro",
47 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080048 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080049 "//third-party:quote",
50 "//third-party:syn",
51 ],
52)
David Tolnayf8ed0732020-04-29 12:34:47 -070053
54rust_library(
55 name = "build",
56 srcs = glob(["gen/build/src/**/*.rs"]),
57 data = ["gen/build/src/gen/include/cxx.h"],
58 visibility = ["//visibility:public"],
59 deps = [
60 "//third-party:anyhow",
61 "//third-party:cc",
62 "//third-party:codespan-reporting",
63 "//third-party:proc-macro2",
64 "//third-party:quote",
65 "//third-party:syn",
66 ],
67)