blob: 0505bd257ef1372f21be7e1b79500c6557e674d8 [file] [log] [blame]
David Tolnay5bde59d2020-02-09 18:59:12 -08001rust_library(
2 name = "cxx",
David Tolnay9f6c0752020-09-07 22:26:46 -07003 srcs = glob(["src/**"]),
David Tolnay5bde59d2020-02-09 18:59:12 -08004 visibility = ["PUBLIC"],
5 deps = [
6 ":core",
7 ":macro",
David Tolnay5bde59d2020-02-09 18:59:12 -08008 ],
9)
10
11rust_binary(
12 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070013 srcs = glob(["gen/cmd/src/**"]),
David Tolnay1f567022020-04-29 16:36:13 -070014 crate = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080015 visibility = ["PUBLIC"],
David Tolnay5bde59d2020-02-09 18:59:12 -080016 deps = [
David Tolnayb316d0b2020-07-30 22:39:23 -070017 "//third-party:clap",
David Tolnay5bde59d2020-02-09 18:59:12 -080018 "//third-party:codespan-reporting",
19 "//third-party:proc-macro2",
20 "//third-party:quote",
David Tolnay5bde59d2020-02-09 18:59:12 -080021 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080022 ],
23)
24
25cxx_library(
26 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070027 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080028 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070029 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080030 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070031 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080032 },
33 exported_linker_flags = ["-lstdc++"],
34)
35
36rust_library(
37 name = "macro",
38 srcs = glob(["macro/src/**"]),
39 proc_macro = True,
40 crate = "cxxbridge_macro",
41 deps = [
42 "//third-party:proc-macro2",
43 "//third-party:quote",
44 "//third-party:syn",
45 ],
46)
David Tolnayf8ed0732020-04-29 12:34:47 -070047
48rust_library(
49 name = "build",
50 srcs = glob(["gen/build/src/**"]),
David Tolnayee907be2020-10-07 17:38:59 -070051 env = {"OUT_DIR": ""},
David Tolnayf8ed0732020-04-29 12:34:47 -070052 visibility = ["PUBLIC"],
53 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070054 "//third-party:cc",
55 "//third-party:codespan-reporting",
56 "//third-party:proc-macro2",
57 "//third-party:quote",
58 "//third-party:syn",
59 ],
60)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070061
62rust_library(
63 name = "lib",
64 srcs = glob(["gen/lib/src/**"]),
65 visibility = ["PUBLIC"],
66 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070067 "//third-party:cc",
68 "//third-party:codespan-reporting",
69 "//third-party:proc-macro2",
70 "//third-party:quote",
71 "//third-party:syn",
72 ],
73)