blob: 197cef22544d2d35f608d71dff4f15ac5b1d6bcb [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",
David Tolnay83f71152020-09-06 19:31:09 -07005 srcs = glob(
6 ["src/**/*.rs"],
7 exclude = ["src/symbols/**/*.rs"],
8 ),
David Tolnaydd247192020-07-30 22:26:52 -07009 proc_macro_deps = [
10 ":cxxbridge-macro",
11 ],
David Tolnayc19936c2020-02-22 11:48:47 -080012 visibility = ["//visibility:public"],
David Tolnay83f71152020-09-06 19:31:09 -070013 deps = [
14 ":core-lib",
15 ":symbols",
16 ],
David Tolnayc19936c2020-02-22 11:48:47 -080017)
18
19rust_binary(
20 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070021 srcs = glob(["gen/cmd/src/**/*.rs"]),
22 data = ["gen/cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080023 visibility = ["//visibility:public"],
24 deps = [
David Tolnayb316d0b2020-07-30 22:39:23 -070025 "//third-party:clap",
David Tolnay671dff82020-02-24 16:46:55 -080026 "//third-party:codespan-reporting",
27 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080028 "//third-party:quote",
David Tolnayc19936c2020-02-22 11:48:47 -080029 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080030 ],
31)
32
33cc_library(
34 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070035 hdrs = ["include/cxx.h"],
36 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080037 strip_include_prefix = "include",
38 visibility = ["//visibility:public"],
39)
40
41cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080042 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070043 srcs = ["src/cxx.cc"],
44 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080045)
46
47rust_library(
David Tolnay83f71152020-09-06 19:31:09 -070048 name = "symbols",
49 srcs = glob(["src/symbols/**/*.rs"]),
50)
51
52rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080053 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080054 srcs = glob(["macro/src/**"]),
55 crate_type = "proc-macro",
56 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080057 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080058 "//third-party:quote",
59 "//third-party:syn",
60 ],
61)
David Tolnayf8ed0732020-04-29 12:34:47 -070062
63rust_library(
64 name = "build",
65 srcs = glob(["gen/build/src/**/*.rs"]),
66 data = ["gen/build/src/gen/include/cxx.h"],
67 visibility = ["//visibility:public"],
68 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070069 "//third-party:cc",
70 "//third-party:codespan-reporting",
71 "//third-party:proc-macro2",
72 "//third-party:quote",
73 "//third-party:syn",
74 ],
75)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070076
77rust_library(
78 name = "lib",
79 srcs = glob(["gen/lib/src/**/*.rs"]),
David Tolnay1fd48132020-08-29 22:46:35 -070080 data = ["gen/lib/src/gen/include/cxx.h"],
Adrian Taylor7ca810b2020-08-24 17:58:36 -070081 visibility = ["//visibility:public"],
82 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070083 "//third-party:cc",
84 "//third-party:codespan-reporting",
85 "//third-party:proc-macro2",
86 "//third-party:quote",
87 "//third-party:syn",
88 ],
89)