blob: acf3a4c963fe00b3b503c02e81c6620428ae5cb2 [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 "//third-party:link-cplusplus",
David Tolnay5bde59d2020-02-09 18:59:12 -080010 ],
11)
12
13rust_binary(
14 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070015 srcs = glob(["gen/cmd/src/**"]),
David Tolnay1f567022020-04-29 16:36:13 -070016 crate = "cxxbridge",
David Tolnay5bde59d2020-02-09 18:59:12 -080017 visibility = ["PUBLIC"],
David Tolnay5bde59d2020-02-09 18:59:12 -080018 deps = [
19 "//third-party:anyhow",
David Tolnay5bde59d2020-02-09 18:59:12 -080020 "//third-party:codespan-reporting",
21 "//third-party:proc-macro2",
22 "//third-party:quote",
23 "//third-party:structopt",
24 "//third-party:syn",
David Tolnay5bde59d2020-02-09 18:59:12 -080025 ],
26)
27
28cxx_library(
29 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070030 srcs = ["src/cxx.cc"],
David Tolnay5bde59d2020-02-09 18:59:12 -080031 visibility = ["PUBLIC"],
David Tolnay736cbca2020-03-11 16:49:18 -070032 header_namespace = "rust",
David Tolnay5bde59d2020-02-09 18:59:12 -080033 exported_headers = {
David Tolnay736cbca2020-03-11 16:49:18 -070034 "cxx.h": "include/cxx.h",
David Tolnay5bde59d2020-02-09 18:59:12 -080035 },
36 exported_linker_flags = ["-lstdc++"],
David Tolnay3c90cd22020-04-30 07:28:21 -070037 deps = [":symbols"],
38)
39
40rust_library(
41 name = "symbols",
42 srcs = glob(["src/macros/**", "src/symbols/**"]),
43 crate_root = "src/symbols/lib.rs",
David Tolnay5bde59d2020-02-09 18:59:12 -080044)
45
46rust_library(
47 name = "macro",
48 srcs = glob(["macro/src/**"]),
49 proc_macro = True,
50 crate = "cxxbridge_macro",
51 deps = [
52 "//third-party:proc-macro2",
53 "//third-party:quote",
54 "//third-party:syn",
55 ],
56)
David Tolnayf8ed0732020-04-29 12:34:47 -070057
58rust_library(
59 name = "build",
60 srcs = glob(["gen/build/src/**"]),
61 visibility = ["PUBLIC"],
62 deps = [
63 "//third-party:anyhow",
64 "//third-party:cc",
65 "//third-party:codespan-reporting",
66 "//third-party:proc-macro2",
67 "//third-party:quote",
68 "//third-party:syn",
69 ],
70)