blob: 0dfa11b807c1576647b13b53b6bdc3c603ead402 [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"],
David Tolnay3c90cd22020-04-30 07:28:21 -07005 rustc_flags = ["--cfg", "no_export_symbols"],
David Tolnay5bde59d2020-02-09 18:59:12 -08006 deps = [
7 ":core",
8 ":macro",
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",
40 srcs = glob(["src/macros/**", "src/symbols/**"]),
David Tolnay7997d072020-04-30 07:55:05 -070041 crate_root = "src/symbols/symbols.rs",
David Tolnay5bde59d2020-02-09 18:59:12 -080042)
43
44rust_library(
45 name = "macro",
46 srcs = glob(["macro/src/**"]),
47 proc_macro = True,
48 crate = "cxxbridge_macro",
49 deps = [
50 "//third-party:proc-macro2",
51 "//third-party:quote",
52 "//third-party:syn",
53 ],
54)
David Tolnayf8ed0732020-04-29 12:34:47 -070055
56rust_library(
57 name = "build",
58 srcs = glob(["gen/build/src/**"]),
59 visibility = ["PUBLIC"],
60 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070061 "//third-party:cc",
62 "//third-party:codespan-reporting",
63 "//third-party:proc-macro2",
64 "//third-party:quote",
65 "//third-party:syn",
66 ],
67)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070068
69rust_library(
70 name = "lib",
71 srcs = glob(["gen/lib/src/**"]),
72 visibility = ["PUBLIC"],
73 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070074 "//third-party:cc",
75 "//third-party:codespan-reporting",
76 "//third-party:proc-macro2",
77 "//third-party:quote",
78 "//third-party:syn",
79 ],
80)