blob: 40aeea6783cb615f60896e474c36d82e04ca63e2 [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/**"]),
21 visibility = ["PUBLIC"],
David Tolnay5bde59d2020-02-09 18:59:12 -080022 deps = [
23 "//third-party:anyhow",
David Tolnay5bde59d2020-02-09 18:59:12 -080024 "//third-party:codespan-reporting",
25 "//third-party:proc-macro2",
26 "//third-party:quote",
27 "//third-party:structopt",
28 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080029 ],
30)
31
32cxx_library(
33 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070034 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080035 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070036 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080037 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070038 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080039 },
40 exported_linker_flags = ["-lstdc++"],
41)
42
43rust_library(
44 name = "macro",
45 srcs = glob(["macro/src/**"]),
46 proc_macro = True,
47 crate = "cxxbridge_macro",
48 deps = [
49 "//third-party:proc-macro2",
50 "//third-party:quote",
51 "//third-party:syn",
52 ],
53)