1load("@rules_cc//cc:defs.bzl", "cc_library") 2load("//tools/bazel:rust.bzl", "rust_binary", "rust_library") 3 4rust_library( 5 name = "cxx", 6 srcs = glob(["src/**/*.rs"]), 7 proc_macro_deps = [ 8 ":cxxbridge-macro", 9 ], 10 visibility = ["//visibility:public"], 11 deps = [":core-lib"], 12) 13 14rust_binary( 15 name = "codegen", 16 srcs = glob(["gen/cmd/src/**/*.rs"]), 17 data = ["gen/cmd/src/gen/include/cxx.h"], 18 visibility = ["//visibility:public"], 19 deps = [ 20 "//third-party:clap", 21 "//third-party:codespan-reporting", 22 "//third-party:proc-macro2", 23 "//third-party:quote", 24 "//third-party:syn", 25 ], 26) 27 28cc_library( 29 name = "core", 30 hdrs = ["include/cxx.h"], 31 include_prefix = "rust", 32 strip_include_prefix = "include", 33 visibility = ["//visibility:public"], 34) 35 36cc_library( 37 name = "core-lib", 38 srcs = ["src/cxx.cc"], 39 hdrs = ["include/cxx.h"], 40) 41 42rust_library( 43 name = "cxxbridge-macro", 44 srcs = glob(["macro/src/**"]), 45 crate_type = "proc-macro", 46 deps = [ 47 "//third-party:proc-macro2", 48 "//third-party:quote", 49 "//third-party:syn", 50 ], 51) 52 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 = [ 59 "//third-party:cc", 60 "//third-party:codespan-reporting", 61 "//third-party:lazy_static", 62 "//third-party:proc-macro2", 63 "//third-party:quote", 64 "//third-party:scratch", 65 "//third-party:syn", 66 ], 67) 68 69rust_library( 70 name = "lib", 71 srcs = glob(["gen/lib/src/**/*.rs"]), 72 data = ["gen/lib/src/gen/include/cxx.h"], 73 visibility = ["//visibility:public"], 74 deps = [ 75 "//third-party:cc", 76 "//third-party:codespan-reporting", 77 "//third-party:proc-macro2", 78 "//third-party:quote", 79 "//third-party:syn", 80 ], 81) 82