blob: 5f2a65fcd5d3865745f7d102afa42303e5357116 [file] [log] [blame]
David Tolnay5bde59d2020-02-09 18:59:12 -08001rust_library(
2 name = "cxx",
David Tolnay3c90cd22020-04-30 07:28:21 -07003 srcs = glob(["src/**"], exclude = ["src/symbols/**"]),
David Tolnay5bde59d2020-02-09 18:59:12 -08004 visibility = ["PUBLIC"],
5 deps = [
6 ":core",
7 ":macro",
David Tolnay83f71152020-09-06 19:31:09 -07008 ":symbols",
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 = [
David Tolnayb316d0b2020-07-30 22:39:23 -070018 "//third-party:clap",
David Tolnay5bde59d2020-02-09 18:59:12 -080019 "//third-party:codespan-reporting",
20 "//third-party:proc-macro2",
21 "//third-party:quote",
David Tolnay5bde59d2020-02-09 18:59:12 -080022 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080023 ],
24)
25
26cxx_library(
27 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070028 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080029 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070030 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080031 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070032 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080033 },
34 exported_linker_flags = ["-lstdc++"],
David Tolnay3c90cd22020-04-30 07:28:21 -070035 deps = [":symbols"],
36)
37
38rust_library(
39 name = "symbols",
David Tolnay83f71152020-09-06 19:31:09 -070040 srcs = glob(["src/symbols/**"]),
David Tolnay5bde59d2020-02-09 18:59:12 -080041)
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)
David Tolnayf8ed0732020-04-29 12:34:47 -070054
55rust_library(
56 name = "build",
57 srcs = glob(["gen/build/src/**"]),
58 visibility = ["PUBLIC"],
59 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070060 "//third-party:cc",
61 "//third-party:codespan-reporting",
62 "//third-party:proc-macro2",
63 "//third-party:quote",
64 "//third-party:syn",
65 ],
66)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070067
68rust_library(
69 name = "lib",
70 srcs = glob(["gen/lib/src/**"]),
71 visibility = ["PUBLIC"],
72 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070073 "//third-party:cc",
74 "//third-party:codespan-reporting",
75 "//third-party:proc-macro2",
76 "//third-party:quote",
77 "//third-party:syn",
78 ],
79)