blob: 27c693197c8caa4b8dd68bdfbb18523417c3f407 [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",
David Tolnay9f6c0752020-09-07 22:26:46 -07005 srcs = glob(["src/**/*.rs"]),
David Tolnaydd247192020-07-30 22:26:52 -07006 proc_macro_deps = [
7 ":cxxbridge-macro",
8 ],
David Tolnayc19936c2020-02-22 11:48:47 -08009 visibility = ["//visibility:public"],
David Tolnay9f6c0752020-09-07 22:26:46 -070010 deps = [":core-lib"],
David Tolnayc19936c2020-02-22 11:48:47 -080011)
12
13rust_binary(
14 name = "codegen",
David Tolnayf8ed0732020-04-29 12:34:47 -070015 srcs = glob(["gen/cmd/src/**/*.rs"]),
16 data = ["gen/cmd/src/gen/include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080017 visibility = ["//visibility:public"],
18 deps = [
David Tolnayb316d0b2020-07-30 22:39:23 -070019 "//third-party:clap",
David Tolnay671dff82020-02-24 16:46:55 -080020 "//third-party:codespan-reporting",
21 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080022 "//third-party:quote",
David Tolnayc19936c2020-02-22 11:48:47 -080023 "//third-party:syn",
David Tolnayc19936c2020-02-22 11:48:47 -080024 ],
25)
26
27cc_library(
28 name = "core",
David Tolnay736cbca2020-03-11 16:49:18 -070029 hdrs = ["include/cxx.h"],
30 include_prefix = "rust",
David Tolnayc19936c2020-02-22 11:48:47 -080031 strip_include_prefix = "include",
32 visibility = ["//visibility:public"],
33)
34
35cc_library(
David Tolnay671dff82020-02-24 16:46:55 -080036 name = "core-lib",
David Tolnay736cbca2020-03-11 16:49:18 -070037 srcs = ["src/cxx.cc"],
38 hdrs = ["include/cxx.h"],
David Tolnayc19936c2020-02-22 11:48:47 -080039)
40
41rust_library(
David Tolnay671dff82020-02-24 16:46:55 -080042 name = "cxxbridge-macro",
David Tolnayc19936c2020-02-22 11:48:47 -080043 srcs = glob(["macro/src/**"]),
44 crate_type = "proc-macro",
45 deps = [
David Tolnay671dff82020-02-24 16:46:55 -080046 "//third-party:proc-macro2",
David Tolnayc19936c2020-02-22 11:48:47 -080047 "//third-party:quote",
48 "//third-party:syn",
49 ],
50)
David Tolnayf8ed0732020-04-29 12:34:47 -070051
52rust_library(
53 name = "build",
54 srcs = glob(["gen/build/src/**/*.rs"]),
55 data = ["gen/build/src/gen/include/cxx.h"],
56 visibility = ["//visibility:public"],
57 deps = [
David Tolnayf8ed0732020-04-29 12:34:47 -070058 "//third-party:cc",
59 "//third-party:codespan-reporting",
60 "//third-party:proc-macro2",
61 "//third-party:quote",
62 "//third-party:syn",
63 ],
64)
Adrian Taylor7ca810b2020-08-24 17:58:36 -070065
66rust_library(
67 name = "lib",
68 srcs = glob(["gen/lib/src/**/*.rs"]),
David Tolnay1fd48132020-08-29 22:46:35 -070069 data = ["gen/lib/src/gen/include/cxx.h"],
Adrian Taylor7ca810b2020-08-24 17:58:36 -070070 visibility = ["//visibility:public"],
71 deps = [
Adrian Taylor7ca810b2020-08-24 17:58:36 -070072 "//third-party:cc",
73 "//third-party:codespan-reporting",
74 "//third-party:proc-macro2",
75 "//third-party:quote",
76 "//third-party:syn",
77 ],
78)