blob: 6a9870ef73c2353a78f2d19bfa539790582911e0 [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",
David Tolnay5bde59d2020-02-09 18:59:12 -080015 ],
16)
17
18rust_binary(
19 name = "codegen",
20 srcs = glob(["cmd/src/**"]),
David Tolnay1f567022020-04-29 16:36:13 -070021 crate = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080022 visibility = ["PUBLIC"],
David Tolnay5bde59d2020-02-09 18:59:12 -080023 deps = [
24 "//third-party:anyhow",
David Tolnay5bde59d2020-02-09 18:59:12 -080025 "//third-party:codespan-reporting",
26 "//third-party:proc-macro2",
27 "//third-party:quote",
28 "//third-party:structopt",
29 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080030 ],
31)
32
33cxx_library(
34 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070035 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080036 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070037 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080038 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070039 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080040 },
41 exported_linker_flags = ["-lstdc++"],
42)
43
44rust_library(
45 name = "macro",
46 srcs = glob(["macro/src/**"]),
47 proc_macro = True,
48 crate = "cxxbridge_macro",
49 deps = [
50 "//third-party:proc-macro2",
51 "//third-party:quote",
52 "//third-party:syn",
53 ],
54)