blob: 2eea8c73fc43a75b368fea075310ac42ce3bc4d3 [file] [log] [blame]
David Tolnay63576d42020-02-25 00:07:13 -08001load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
David Tolnayc19936c2020-02-22 11:48:47 -08002
3rust_library(
4 name = "cxx",
5 srcs = glob(["src/**/*.rs"]),
David Tolnay736cbca2020-03-11 16:49:18 -07006 data = ["src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -08007 visibility = ["//visibility:public"],
8 deps = [
David Tolnay671dff82020-02-24 16:46:55 -08009 ":core-lib",
10 ":cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080011 "//third-party:anyhow",
12 "//third-party:cc",
David Tolnay671dff82020-02-24 16:46:55 -080013 "//third-party:codespan-reporting",
14 "//third-party:link-cplusplus",
15 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080016 "//third-party:quote",
17 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080018 ],
19)
20
21rust_binary(
22 name = "codegen",
23 srcs = glob(["cmd/src/**/*.rs"]),
David Tolnay736cbca2020-03-11 16:49:18 -070024 data = ["cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080025 visibility = ["//visibility:public"],
26 deps = [
27 "//third-party:anyhow",
David Tolnay671dff82020-02-24 16:46:55 -080028 "//third-party:codespan-reporting",
29 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080030 "//third-party:quote",
31 "//third-party:structopt",
32 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080033 ],
34)
35
36cc_library(
37 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070038 hdrs = ["include/cxx.h"],
39 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080040 strip_include_prefix = "include",
41 visibility = ["//visibility:public"],
42)
43
44cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080045 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070046 srcs = ["src/cxx.cc"],
47 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080048)
49
50rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080051 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080052 srcs = glob(["macro/src/**"]),
53 crate_type = "proc-macro",
54 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080055 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080056 "//third-party:quote",
57 "//third-party:syn",
58 ],
59)