blob: da6fcb24461c1446f826af88611563c29cd1ae70 [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/**"]),
51 visibility = ["PUBLIC"],
52 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070053 "//third-party:cc",
54 "//third-party:codespan-reporting",
David Tolnay4563fb12020-10-08 16:43:19 -070055 "//third-party:lazy_static",
David Tolnayf8ed0732020-04-29 12:34:47 -070056 "//third-party:proc-macro2",
57 "//third-party:quote",
David Tolnaya8beeef2020-10-07 17:29:37 -070058 "//third-party:scratch",
David Tolnayf8ed0732020-04-29 12:34:47 -070059 "//third-party:syn",
60 ],
61)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070062
63rust_library(
64 name = "lib",
65 srcs = glob(["gen/lib/src/**"]),
66 visibility = ["PUBLIC"],
67 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070068 "//third-party:cc",
69 "//third-party:codespan-reporting",
70 "//third-party:proc-macro2",
71 "//third-party:quote",
72 "//third-party:syn",
73 ],
74)