blob: 017b7cc4be8ff1eee4e0450158198e235360265d [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 Tolnaydd247192020-07-30 22:26:52 -07006 proc_macro_deps = [
7 ":cxxbridge-macro",
8 ],
David Tolnayc19936c2020-02-22 11:48:47 -08009 visibility = ["//visibility:public"],
10 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080011 ":core-lib",
David Tolnay671dff82020-02-24 16:46:55 -080012 "//third-party:link-cplusplus",
David Tolnayc19936c2020-02-22 11:48:47 -080013 ],
14)
15
16rust_binary(
17 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070018 srcs = glob(["gen/cmd/src/**/*.rs"]),
19 data = ["gen/cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080020 visibility = ["//visibility:public"],
21 deps = [
22 "//third-party:anyhow",
David Tolnayb316d0b2020-07-30 22:39:23 -070023 "//third-party:clap",
David Tolnay671dff82020-02-24 16:46:55 -080024 "//third-party:codespan-reporting",
25 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080026 "//third-party:quote",
David Tolnayc19936c2020-02-22 11:48:47 -080027 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080028 ],
29)
30
31cc_library(
32 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070033 hdrs = ["include/cxx.h"],
34 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080035 strip_include_prefix = "include",
36 visibility = ["//visibility:public"],
37)
38
39cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080040 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070041 srcs = ["src/cxx.cc"],
42 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080043)
44
45rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080046 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080047 srcs = glob(["macro/src/**"]),
48 crate_type = "proc-macro",
49 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080050 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080051 "//third-party:quote",
52 "//third-party:syn",
53 ],
54)
David Tolnayf8ed0732020-04-29 12:34:47 -070055
56rust_library(
57 name = "build",
58 srcs = glob(["gen/build/src/**/*.rs"]),
59 data = ["gen/build/src/gen/include/cxx.h"],
60 visibility = ["//visibility:public"],
61 deps = [
62 "//third-party:anyhow",
63 "//third-party:cc",
64 "//third-party:codespan-reporting",
65 "//third-party:proc-macro2",
66 "//third-party:quote",
67 "//third-party:syn",
68 ],
69)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070070
71rust_library(
72 name = "lib",
73 srcs = glob(["gen/lib/src/**/*.rs"]),
74 data = ["gen/build/src/gen/include/cxx.h"],
75 visibility = ["//visibility:public"],
76 deps = [
77 "//third-party:anyhow",
78 "//third-party:cc",
79 "//third-party:codespan-reporting",
80 "//third-party:proc-macro2",
81 "//third-party:quote",
82 "//third-party:syn",
83 ],
84)