| # An alternate implementation of the proto! macro as a proc macro instead of macro_rules. | |
| # This is only in a separate directory due to the top level package being part of the 'core' | |
| # component, and it not being a resolved decision if we want to add all deps of this proc macro to | |
| # the core component. | |
| load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix") | |
| load("@rules_rust//rust:defs.bzl", "rust_proc_macro") | |
| PROC_MACRO_SRCS = ["proto_proc_macro_impl.rs"] | |
| rust_proc_macro( | |
| name = "protobuf_macros", | |
| srcs = PROC_MACRO_SRCS, | |
| edition = "2021", | |
| visibility = [ | |
| "//devtools/rust/rust_analyzer/proc_macros:__pkg__", | |
| "//rust:__subpackages__", | |
| ], | |
| deps = [ | |
| "@crate_index//:quote", | |
| "@crate_index//:syn", | |
| ], | |
| ) | |
| pkg_files( | |
| name = "rust_protobuf_macros_src", | |
| srcs = PROC_MACRO_SRCS, | |
| strip_prefix = strip_prefix.from_root("rust/protobuf_macros"), | |
| ) | |
| pkg_filegroup( | |
| name = "rust_protobuf_macros_src_dir", | |
| srcs = [ | |
| ":rust_protobuf_macros_src", | |
| ], | |
| prefix = "src", | |
| visibility = ["//rust/release_crates:__subpackages__"], | |
| ) |