blob: a58e0a2cf707d6a3c56e8eb2b0b6e1a3b033b282 [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 Tolnayb316d0b2020-07-30 22:39:23 -070020 "//third-party:clap",
David Tolnay5bde59d2020-02-09 18:59:12 -080021 "//third-party:codespan-reporting",
22 "//third-party:proc-macro2",
23 "//third-party:quote",
David Tolnay5bde59d2020-02-09 18:59:12 -080024 "//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/**"]),
David Tolnay7997d072020-04-30 07:55:05 -070043 crate_root = "src/symbols/symbols.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)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070071
72rust_library(
73 name = "lib",
74 srcs = glob(["gen/lib/src/**"]),
75 visibility = ["PUBLIC"],
76 deps = [
77 "//third-party:anyhow",
78 "//third-party:cc",
79 "//third-party:codespan-reporting",
80 "//third-party:proc-macro2",
81 "//third-party:quote",
82 "//third-party:syn",
83 ],
84)