| rust_library( | 
 |     name = "cxx", | 
 |     srcs = glob(["src/**"]), | 
 |     visibility = ["PUBLIC"], | 
 |     deps = [ | 
 |         ":core", | 
 |         ":macro", | 
 |     ], | 
 | ) | 
 |  | 
 | rust_binary( | 
 |     name = "codegen", | 
 |     srcs = glob(["gen/cmd/src/**"]), | 
 |     crate = "cxxbridge", | 
 |     visibility = ["PUBLIC"], | 
 |     deps = [ | 
 |         "//third-party:clap", | 
 |         "//third-party:codespan-reporting", | 
 |         "//third-party:proc-macro2", | 
 |         "//third-party:quote", | 
 |         "//third-party:syn", | 
 |     ], | 
 | ) | 
 |  | 
 | cxx_library( | 
 |     name = "core", | 
 |     srcs = ["src/cxx.cc"], | 
 |     visibility = ["PUBLIC"], | 
 |     header_namespace = "rust", | 
 |     exported_headers = { | 
 |         "cxx.h": "include/cxx.h", | 
 |     }, | 
 |     exported_linker_flags = ["-lstdc++"], | 
 | ) | 
 |  | 
 | rust_library( | 
 |     name = "macro", | 
 |     srcs = glob(["macro/src/**"]), | 
 |     proc_macro = True, | 
 |     crate = "cxxbridge_macro", | 
 |     deps = [ | 
 |         "//third-party:proc-macro2", | 
 |         "//third-party:quote", | 
 |         "//third-party:syn", | 
 |     ], | 
 | ) | 
 |  | 
 | rust_library( | 
 |     name = "build", | 
 |     srcs = glob(["gen/build/src/**"]), | 
 |     visibility = ["PUBLIC"], | 
 |     deps = [ | 
 |         "//third-party:cc", | 
 |         "//third-party:codespan-reporting", | 
 |         "//third-party:lazy_static", | 
 |         "//third-party:proc-macro2", | 
 |         "//third-party:quote", | 
 |         "//third-party:scratch", | 
 |         "//third-party:syn", | 
 |     ], | 
 | ) | 
 |  | 
 | rust_library( | 
 |     name = "lib", | 
 |     srcs = glob(["gen/lib/src/**"]), | 
 |     visibility = ["PUBLIC"], | 
 |     deps = [ | 
 |         "//third-party:cc", | 
 |         "//third-party:codespan-reporting", | 
 |         "//third-party:proc-macro2", | 
 |         "//third-party:quote", | 
 |         "//third-party:syn", | 
 |     ], | 
 | ) |