blob: 24a1c8b6801dd98eff686fbd84dbb1474c450cb3 [file] [log] [blame]
David Tolnaye02c8b32020-09-24 08:56:48 -04001load("@rules_cc//cc:defs.bzl", "cc_library")
David Tolnay63576d42020-02-25 00:07:13 -08002load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
David Tolnayc19936c2020-02-22 11:48:47 -08003
4rust_library(
5 name = "cxx",
David Tolnay9f6c0752020-09-07 22:26:46 -07006 srcs = glob(["src/**/*.rs"]),
David Tolnaydd247192020-07-30 22:26:52 -07007 proc_macro_deps = [
8 ":cxxbridge-macro",
9 ],
David Tolnayc19936c2020-02-22 11:48:47 -080010 visibility = ["//visibility:public"],
David Tolnay9f6c0752020-09-07 22:26:46 -070011 deps = [":core-lib"],
David Tolnayc19936c2020-02-22 11:48:47 -080012)
13
14rust_binary(
15 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070016 srcs = glob(["gen/cmd/src/**/*.rs"]),
17 data = ["gen/cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080018 visibility = ["//visibility:public"],
19 deps = [
David Tolnayb316d0b2020-07-30 22:39:23 -070020 "//third-party:clap",
David Tolnay671dff82020-02-24 16:46:55 -080021 "//third-party:codespan-reporting",
22 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080023 "//third-party:quote",
David Tolnayc19936c2020-02-22 11:48:47 -080024 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080025 ],
26)
27
28cc_library(
29 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070030 hdrs = ["include/cxx.h"],
31 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080032 strip_include_prefix = "include",
33 visibility = ["//visibility:public"],
34)
35
36cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080037 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070038 srcs = ["src/cxx.cc"],
39 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080040)
41
42rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080043 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080044 srcs = glob(["macro/src/**"]),
45 crate_type = "proc-macro",
46 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080047 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080048 "//third-party:quote",
49 "//third-party:syn",
50 ],
51)
David Tolnayf8ed0732020-04-29 12:34:47 -070052
53rust_library(
54 name = "build",
55 srcs = glob(["gen/build/src/**/*.rs"]),
56 data = ["gen/build/src/gen/include/cxx.h"],
57 visibility = ["//visibility:public"],
58 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070059 "//third-party:cc",
60 "//third-party:codespan-reporting",
David Tolnay4563fb12020-10-08 16:43:19 -070061 "//third-party:lazy_static",
David Tolnayf8ed0732020-04-29 12:34:47 -070062 "//third-party:proc-macro2",
63 "//third-party:quote",
David Tolnaya8beeef2020-10-07 17:29:37 -070064 "//third-party:scratch",
David Tolnayf8ed0732020-04-29 12:34:47 -070065 "//third-party:syn",
66 ],
67)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070068
69rust_library(
70 name = "lib",
71 srcs = glob(["gen/lib/src/**/*.rs"]),
David Tolnay1fd48132020-08-29 22:46:35 -070072 data = ["gen/lib/src/gen/include/cxx.h"],
Adrian Taylor7ca810b2020-08-24 17:58:36 -070073 visibility = ["//visibility:public"],
74 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070075 "//third-party:cc",
76 "//third-party:codespan-reporting",
77 "//third-party:proc-macro2",
78 "//third-party:quote",
79 "//third-party:syn",
80 ],
81)