blob: 2339f71479f2f0c391d9f3a7c1f5432fcfdb73ac [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",
David Tolnay5bde59d2020-02-09 18:59:12 -08008 "//third-party:link-cplusplus",
David Tolnay5bde59d2020-02-09 18:59:12 -08009 ],
10)
11
12rust_binary(
13 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070014 srcs = glob(["gen/cmd/src/**"]),
David Tolnay1f567022020-04-29 16:36:13 -070015 crate = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080016 visibility = ["PUBLIC"],
David Tolnay5bde59d2020-02-09 18:59:12 -080017 deps = [
18 "//third-party:anyhow",
David Tolnay5bde59d2020-02-09 18:59:12 -080019 "//third-party:codespan-reporting",
20 "//third-party:proc-macro2",
21 "//third-party:quote",
22 "//third-party:structopt",
23 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080024 ],
25)
26
27cxx_library(
28 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070029 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080030 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070031 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080032 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070033 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080034 },
35 exported_linker_flags = ["-lstdc++"],
36)
37
38rust_library(
39 name = "macro",
40 srcs = glob(["macro/src/**"]),
41 proc_macro = True,
42 crate = "cxxbridge_macro",
43 deps = [
44 "//third-party:proc-macro2",
45 "//third-party:quote",
46 "//third-party:syn",
47 ],
48)
David Tolnayf8ed0732020-04-29 12:34:47 -070049
50rust_library(
51 name = "build",
52 srcs = glob(["gen/build/src/**"]),
53 visibility = ["PUBLIC"],
54 deps = [
55 "//third-party:anyhow",
56 "//third-party:cc",
57 "//third-party:codespan-reporting",
58 "//third-party:proc-macro2",
59 "//third-party:quote",
60 "//third-party:syn",
61 ],
62)