blob: db22203761f82d47de8341e62afdc576d5afaca3 [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 Tolnay736cbca2020-03-11 16:49:18 -07006 data = ["src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -08007 visibility = ["//visibility:public"],
8 deps = [
David Tolnay671dff82020-02-24 16:46:55 -08009 ":core-lib",
10 ":cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080011 "//third-party:anyhow",
12 "//third-party:cc",
13 "//third-party:codespan",
David Tolnay671dff82020-02-24 16:46:55 -080014 "//third-party:codespan-reporting",
15 "//third-party:link-cplusplus",
16 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080017 "//third-party:quote",
18 "//third-party:syn",
19 "//third-party:thiserror",
20 ],
21)
22
23rust_binary(
24 name = "codegen",
25 srcs = glob(["cmd/src/**/*.rs"]),
David Tolnay736cbca2020-03-11 16:49:18 -070026 data = ["cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080027 visibility = ["//visibility:public"],
28 deps = [
29 "//third-party:anyhow",
30 "//third-party:codespan",
David Tolnay671dff82020-02-24 16:46:55 -080031 "//third-party:codespan-reporting",
32 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080033 "//third-party:quote",
34 "//third-party:structopt",
35 "//third-party:syn",
36 "//third-party:thiserror",
37 ],
38)
39
40cc_library(
41 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070042 hdrs = ["include/cxx.h"],
43 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080044 strip_include_prefix = "include",
45 visibility = ["//visibility:public"],
46)
47
48cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080049 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070050 srcs = ["src/cxx.cc"],
51 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080052)
53
54rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080055 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080056 srcs = glob(["macro/src/**"]),
57 crate_type = "proc-macro",
58 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080059 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080060 "//third-party:quote",
61 "//third-party:syn",
62 ],
63)