blob: 4357dd69f043f9f20d2b2d4867fec9e3411370d9 [file] [log] [blame]
David Tolnay5bde59d2020-02-09 18:59:12 -08001rust_library(
2 name = "cxx",
3 srcs = glob(["src/**"]),
4 visibility = ["PUBLIC"],
5 deps = [
6 ":core",
7 ":macro",
8 "//third-party:anyhow",
9 "//third-party:cc",
David Tolnay5bde59d2020-02-09 18:59:12 -080010 "//third-party:codespan-reporting",
11 "//third-party:link-cplusplus",
12 "//third-party:proc-macro2",
13 "//third-party:quote",
14 "//third-party:syn",
15 "//third-party:thiserror",
16 ],
17)
18
19rust_binary(
20 name = "codegen",
21 srcs = glob(["cmd/src/**"]),
22 visibility = ["PUBLIC"],
23 env = {
24 "CARGO_PKG_AUTHORS": "David Tolnay <dtolnay@gmail.com>",
25 },
26 deps = [
27 "//third-party:anyhow",
David Tolnay5bde59d2020-02-09 18:59:12 -080028 "//third-party:codespan-reporting",
29 "//third-party:proc-macro2",
30 "//third-party:quote",
31 "//third-party:structopt",
32 "//third-party:syn",
33 "//third-party:thiserror",
34 ],
35)
36
37cxx_library(
38 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070039 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080040 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070041 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080042 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070043 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080044 },
45 exported_linker_flags = ["-lstdc++"],
46)
47
48rust_library(
49 name = "macro",
50 srcs = glob(["macro/src/**"]),
51 proc_macro = True,
52 crate = "cxxbridge_macro",
53 deps = [
54 "//third-party:proc-macro2",
55 "//third-party:quote",
56 "//third-party:syn",
57 ],
58)