Skip to content

Commit 3bc4c06

Browse files
committed
proc macro stuff
1 parent 6d532fd commit 3bc4c06

File tree

26 files changed

+285
-199
lines changed

26 files changed

+285
-199
lines changed

crate_universe/BUILD.bazel

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,17 @@ rust_library(
6666
aliases = aliases(),
6767
compile_data = [":rust_data"],
6868
edition = "2021",
69-
proc_macro_deps = all_crate_deps(proc_macro = True),
7069
# This target embeds additional, stamping related information (see
7170
# https://docs.bazel.build/versions/main/user-manual.html#workspace_status
7271
# for more information). Set stamp = -1 to indicate that it should respect
7372
# the value of the --stamp commandline flag.
7473
stamp = -1,
7574
version = VERSION,
7675
visibility = ["//visibility:public"],
77-
deps = all_crate_deps(normal = True),
76+
deps = all_crate_deps(
77+
normal = True,
78+
proc_macro = True,
79+
),
7880
)
7981

8082
rust_binary(

crate_universe/defs.bzl

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,6 @@ rust_library(
7575
aliases = aliases(),
7676
deps = all_crate_deps(
7777
normal = True,
78-
),
79-
proc_macro_deps = all_crate_deps(
8078
proc_macro = True,
8179
),
8280
)
@@ -90,8 +88,6 @@ rust_test(
9088
),
9189
deps = all_crate_deps(
9290
normal_dev = True,
93-
),
94-
proc_macro_deps = all_crate_deps(
9591
proc_macro_dev = True,
9692
),
9793
)
@@ -143,10 +139,8 @@ load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
143139
rust_library(
144140
name = "lib",
145141
deps = [
146-
"@crate_index//:tokio",
147-
],
148-
proc_macro_deps = [
149142
"@crate_index//:async-trait",
143+
"@crate_index//:tokio",
150144
],
151145
)
152146

crate_universe/extensions.bzl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ rust_library(
8989
aliases = aliases(),
9090
deps = all_crate_deps(
9191
normal = True,
92-
),
93-
proc_macro_deps = all_crate_deps(
9492
proc_macro = True,
9593
),
9694
)
@@ -104,8 +102,6 @@ rust_test(
104102
),
105103
deps = all_crate_deps(
106104
normal_dev = True,
107-
),
108-
proc_macro_deps = all_crate_deps(
109105
proc_macro_dev = True,
110106
),
111107
)

crate_universe/src/rendering.rs

Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -582,11 +582,21 @@ impl Renderer {
582582
attrs.map(|attrs| attrs.data.clone()).unwrap_or_default(),
583583
),
584584
deps: SelectSet::new(
585-
self.make_deps(
586-
attrs.map(|attrs| attrs.deps.clone()).unwrap_or_default(),
587-
attrs
588-
.map(|attrs| attrs.extra_deps.clone())
589-
.unwrap_or_default(),
585+
Select::merge(
586+
self.make_deps(
587+
attrs.map(|attrs| attrs.deps.clone()).unwrap_or_default(),
588+
attrs
589+
.map(|attrs| attrs.extra_deps.clone())
590+
.unwrap_or_default(),
591+
),
592+
self.make_deps(
593+
attrs
594+
.map(|attrs| attrs.proc_macro_deps.clone())
595+
.unwrap_or_default(),
596+
attrs
597+
.map(|attrs| attrs.extra_proc_macro_deps.clone())
598+
.unwrap_or_default(),
599+
),
590600
),
591601
platforms,
592602
),
@@ -605,17 +615,6 @@ impl Renderer {
605615
linker_script: krate.common_attrs.linker_script.clone(),
606616
links: attrs.and_then(|attrs| attrs.links.clone()),
607617
pkg_name: Some(krate.name.clone()),
608-
proc_macro_deps: SelectSet::new(
609-
self.make_deps(
610-
attrs
611-
.map(|attrs| attrs.proc_macro_deps.clone())
612-
.unwrap_or_default(),
613-
attrs
614-
.map(|attrs| attrs.extra_proc_macro_deps.clone())
615-
.unwrap_or_default(),
616-
),
617-
platforms,
618-
),
619618
rundir: SelectScalar::new(
620619
attrs.map(|attrs| attrs.rundir.clone()).unwrap_or_default(),
621620
platforms,
@@ -674,16 +673,15 @@ impl Renderer {
674673
Ok(RustProcMacro {
675674
name: target.crate_name.clone(),
676675
deps: SelectSet::new(
677-
self.make_deps(
678-
krate.common_attrs.deps.clone(),
679-
krate.common_attrs.extra_deps.clone(),
680-
),
681-
platforms,
682-
),
683-
proc_macro_deps: SelectSet::new(
684-
self.make_deps(
685-
krate.common_attrs.proc_macro_deps.clone(),
686-
krate.common_attrs.extra_proc_macro_deps.clone(),
676+
Select::merge(
677+
self.make_deps(
678+
krate.common_attrs.deps.clone(),
679+
krate.common_attrs.extra_deps.clone(),
680+
),
681+
self.make_deps(
682+
krate.common_attrs.proc_macro_deps.clone(),
683+
krate.common_attrs.extra_proc_macro_deps.clone(),
684+
),
687685
),
688686
platforms,
689687
),
@@ -701,16 +699,15 @@ impl Renderer {
701699
Ok(RustLibrary {
702700
name: target.crate_name.clone(),
703701
deps: SelectSet::new(
704-
self.make_deps(
705-
krate.common_attrs.deps.clone(),
706-
krate.common_attrs.extra_deps.clone(),
707-
),
708-
platforms,
709-
),
710-
proc_macro_deps: SelectSet::new(
711-
self.make_deps(
712-
krate.common_attrs.proc_macro_deps.clone(),
713-
krate.common_attrs.extra_proc_macro_deps.clone(),
702+
Select::merge(
703+
self.make_deps(
704+
krate.common_attrs.deps.clone(),
705+
krate.common_attrs.extra_deps.clone(),
706+
),
707+
self.make_deps(
708+
krate.common_attrs.proc_macro_deps.clone(),
709+
krate.common_attrs.extra_proc_macro_deps.clone(),
710+
),
714711
),
715712
platforms,
716713
),
@@ -729,9 +726,15 @@ impl Renderer {
729726
Ok(RustBinary {
730727
name: format!("{}__bin", target.crate_name),
731728
deps: {
732-
let mut deps = self.make_deps(
733-
krate.common_attrs.deps.clone(),
734-
krate.common_attrs.extra_deps.clone(),
729+
let mut deps = Select::merge(
730+
self.make_deps(
731+
krate.common_attrs.deps.clone(),
732+
krate.common_attrs.extra_deps.clone(),
733+
),
734+
self.make_deps(
735+
krate.common_attrs.proc_macro_deps.clone(),
736+
krate.common_attrs.extra_proc_macro_deps.clone(),
737+
),
735738
);
736739
if let Some(library_target_name) = &krate.library_target_name {
737740
deps.insert(
@@ -741,13 +744,6 @@ impl Renderer {
741744
}
742745
SelectSet::new(deps, platforms)
743746
},
744-
proc_macro_deps: SelectSet::new(
745-
self.make_deps(
746-
krate.common_attrs.proc_macro_deps.clone(),
747-
krate.common_attrs.extra_proc_macro_deps.clone(),
748-
),
749-
platforms,
750-
),
751747
aliases: SelectDict::new(self.make_aliases(krate, false, false), platforms),
752748
common: self.make_common_attrs(platforms, krate, target)?,
753749
})

crate_universe/src/utils/starlark.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,6 @@ pub(crate) struct CargoBuildScript {
118118
pub(crate) links: Option<String>,
119119
#[serde(skip_serializing_if = "Option::is_none")]
120120
pub(crate) pkg_name: Option<String>,
121-
#[serde(skip_serializing_if = "SelectSet::is_empty")]
122-
pub(crate) proc_macro_deps: SelectSet<Label>,
123121
#[serde(skip_serializing_if = "SelectScalar::is_empty")]
124122
pub(crate) rundir: SelectScalar<String>,
125123
#[serde(skip_serializing_if = "SelectDict::is_empty")]
@@ -153,8 +151,6 @@ pub(crate) struct RustProcMacro {
153151
pub(crate) name: String,
154152
#[serde(skip_serializing_if = "SelectSet::is_empty")]
155153
pub(crate) deps: SelectSet<Label>,
156-
#[serde(skip_serializing_if = "SelectSet::is_empty")]
157-
pub(crate) proc_macro_deps: SelectSet<Label>,
158154
#[serde(skip_serializing_if = "SelectDict::is_empty")]
159155
pub(crate) aliases: SelectDict<Label, String>,
160156
#[serde(flatten)]
@@ -166,8 +162,6 @@ pub(crate) struct RustLibrary {
166162
pub(crate) name: String,
167163
#[serde(skip_serializing_if = "SelectSet::is_empty")]
168164
pub(crate) deps: SelectSet<Label>,
169-
#[serde(skip_serializing_if = "SelectSet::is_empty")]
170-
pub(crate) proc_macro_deps: SelectSet<Label>,
171165
#[serde(skip_serializing_if = "SelectDict::is_empty")]
172166
pub(crate) aliases: SelectDict<Label, String>,
173167
#[serde(flatten)]
@@ -181,8 +175,6 @@ pub(crate) struct RustBinary {
181175
pub(crate) name: String,
182176
#[serde(skip_serializing_if = "SelectSet::is_empty")]
183177
pub(crate) deps: SelectSet<Label>,
184-
#[serde(skip_serializing_if = "SelectSet::is_empty")]
185-
pub(crate) proc_macro_deps: SelectSet<Label>,
186178
#[serde(skip_serializing_if = "SelectDict::is_empty")]
187179
pub(crate) aliases: SelectDict<Label, String>,
188180
#[serde(flatten)]

crate_universe/tools/cross_installer/BUILD.bazel

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ rust_binary(
2121
"@rules_rust//rust/toolchain:current_cargo_files",
2222
],
2323
edition = "2021",
24-
proc_macro_deps = all_crate_deps(proc_macro = True),
2524
rustc_env = {
2625
"CARGO": "$(rlocationpath @rules_rust//rust/toolchain:current_cargo_files)",
2726
"CROSS_BIN": "$(rlocationpath :cross)",
2827
"CROSS_CONFIG_RLOCATION": "$(rlocationpath :Cross.toml)",
2928
},
30-
deps = all_crate_deps(normal = True) + ["@rules_rust//rust/runfiles"],
29+
deps = all_crate_deps(
30+
normal = True,
31+
proc_macro = True,
32+
) + ["@rules_rust//rust/runfiles"],
3133
)
3234

3335
filegroup(

crate_universe/tools/urls_generator/BUILD.bazel

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ rust_binary(
1414
"//crate_universe/private:urls.bzl",
1515
],
1616
edition = "2021",
17-
proc_macro_deps = all_crate_deps(proc_macro = True),
1817
rustc_env = {
1918
"MODULE_ROOT_PATH": "$(rootpath //crate_universe/private:urls.bzl)",
2019
},
21-
deps = all_crate_deps(normal = True),
20+
deps = all_crate_deps(
21+
normal = True,
22+
proc_macro = True,
23+
),
2224
)

examples/crate_universe/cargo_aliases/BUILD.bazel

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,20 @@ rust_library(
77
srcs = glob(["**/*.rs"]),
88
aliases = aliases(),
99
edition = "2018",
10-
proc_macro_deps = all_crate_deps(proc_macro = True),
11-
deps = all_crate_deps(normal = True),
10+
deps = all_crate_deps(
11+
normal = True,
12+
proc_macro = True,
13+
),
1214
)
1315

1416
rust_test(
1517
name = "unit_test",
1618
aliases = aliases(),
1719
crate = ":aliases",
18-
proc_macro_deps = all_crate_deps(proc_macro_dev = True),
19-
deps = all_crate_deps(normal_dev = True),
20+
deps = all_crate_deps(
21+
normal_dev = True,
22+
proc_macro_dev = True,
23+
),
2024
)
2125

2226
# Ensures that Bazel aliases from the crates_repository are actually usable.

extensions/wasm_bindgen/private/wasm_bindgen_test.bzl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ load(
1919
"find_toolchain",
2020
"generate_output_diagnostics",
2121
"get_import_macro_deps",
22+
"partition_deps",
2223
"transform_deps",
2324
"transform_sources",
2425
)
@@ -67,8 +68,9 @@ def _rust_wasm_bindgen_test_impl(ctx):
6768
toolchain = find_toolchain(ctx)
6869

6970
crate_type = "bin"
70-
deps = transform_deps(ctx.attr.deps + [wb_toolchain.wasm_bindgen_test])
71-
proc_macro_deps = transform_deps(ctx.attr.proc_macro_deps + get_import_macro_deps(ctx))
71+
deps, proc_macro_deps = partition_deps(ctx)
72+
deps = transform_deps(deps + [wb_toolchain.wasm_bindgen_test])
73+
proc_macro_deps = transform_deps(proc_macro_deps + get_import_macro_deps(ctx))
7274

7375
# Target is building the crate in `test` config
7476
if WasmBindgenTestCrateInfo in ctx.attr.wasm:

rust/defs.bzl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ load(
3636
_rust_binary = "rust_binary",
3737
_rust_library = "rust_library",
3838
_rust_library_group = "rust_library_group",
39-
_rust_proc_macro = "rust_proc_macro",
4039
_rust_shared_library = "rust_shared_library",
4140
_rust_static_library = "rust_static_library",
4241
_rust_test = "rust_test",
@@ -46,6 +45,10 @@ load(
4645
"//rust/private:rust_analyzer.bzl",
4746
_rust_analyzer_aspect = "rust_analyzer_aspect",
4847
)
48+
load(
49+
"//rust/private:rust_proc_macro.bzl",
50+
_rust_proc_macro = "rust_proc_macro_macro",
51+
)
4952
load(
5053
"//rust/private:rustc.bzl",
5154
_error_format = "error_format",

0 commit comments

Comments
 (0)