Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions crate_universe/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,17 @@ rust_library(
aliases = aliases(),
compile_data = [":rust_data"],
edition = "2021",
proc_macro_deps = all_crate_deps(proc_macro = True),
# This target embeds additional, stamping related information (see
# https://docs.bazel.build/versions/main/user-manual.html#workspace_status
# for more information). Set stamp = -1 to indicate that it should respect
# the value of the --stamp commandline flag.
stamp = -1,
version = VERSION,
visibility = ["//visibility:public"],
deps = all_crate_deps(normal = True),
deps = all_crate_deps(
normal = True,
proc_macro = True,
),
)

rust_binary(
Expand Down
8 changes: 1 addition & 7 deletions crate_universe/defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ rust_library(
aliases = aliases(),
deps = all_crate_deps(
normal = True,
),
proc_macro_deps = all_crate_deps(
proc_macro = True,
),
)
Expand All @@ -90,8 +88,6 @@ rust_test(
),
deps = all_crate_deps(
normal_dev = True,
),
proc_macro_deps = all_crate_deps(
proc_macro_dev = True,
),
)
Expand Down Expand Up @@ -143,10 +139,8 @@ load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
rust_library(
name = "lib",
deps = [
"@crate_index//:tokio",
],
proc_macro_deps = [
"@crate_index//:async-trait",
"@crate_index//:tokio",
],
)

Expand Down
4 changes: 0 additions & 4 deletions crate_universe/extensions.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@ rust_library(
aliases = aliases(),
deps = all_crate_deps(
normal = True,
),
proc_macro_deps = all_crate_deps(
proc_macro = True,
),
)
Expand All @@ -104,8 +102,6 @@ rust_test(
),
deps = all_crate_deps(
normal_dev = True,
),
proc_macro_deps = all_crate_deps(
proc_macro_dev = True,
),
)
Expand Down
88 changes: 42 additions & 46 deletions crate_universe/src/rendering.rs
Original file line number Diff line number Diff line change
Expand Up @@ -582,11 +582,21 @@ impl Renderer {
attrs.map(|attrs| attrs.data.clone()).unwrap_or_default(),
),
deps: SelectSet::new(
self.make_deps(
attrs.map(|attrs| attrs.deps.clone()).unwrap_or_default(),
attrs
.map(|attrs| attrs.extra_deps.clone())
.unwrap_or_default(),
Select::merge(
self.make_deps(
attrs.map(|attrs| attrs.deps.clone()).unwrap_or_default(),
attrs
.map(|attrs| attrs.extra_deps.clone())
.unwrap_or_default(),
),
self.make_deps(
attrs
.map(|attrs| attrs.proc_macro_deps.clone())
.unwrap_or_default(),
attrs
.map(|attrs| attrs.extra_proc_macro_deps.clone())
.unwrap_or_default(),
),
),
platforms,
),
Expand All @@ -605,17 +615,6 @@ impl Renderer {
linker_script: krate.common_attrs.linker_script.clone(),
links: attrs.and_then(|attrs| attrs.links.clone()),
pkg_name: Some(krate.name.clone()),
proc_macro_deps: SelectSet::new(
self.make_deps(
attrs
.map(|attrs| attrs.proc_macro_deps.clone())
.unwrap_or_default(),
attrs
.map(|attrs| attrs.extra_proc_macro_deps.clone())
.unwrap_or_default(),
),
platforms,
),
rundir: SelectScalar::new(
attrs.map(|attrs| attrs.rundir.clone()).unwrap_or_default(),
platforms,
Expand Down Expand Up @@ -674,16 +673,15 @@ impl Renderer {
Ok(RustProcMacro {
name: target.crate_name.clone(),
deps: SelectSet::new(
self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
),
platforms,
),
proc_macro_deps: SelectSet::new(
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
Select::merge(
self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
),
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
),
),
platforms,
),
Expand All @@ -701,16 +699,15 @@ impl Renderer {
Ok(RustLibrary {
name: target.crate_name.clone(),
deps: SelectSet::new(
self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
),
platforms,
),
proc_macro_deps: SelectSet::new(
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
Select::merge(
self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
),
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
),
),
platforms,
),
Expand All @@ -729,9 +726,15 @@ impl Renderer {
Ok(RustBinary {
name: format!("{}__bin", target.crate_name),
deps: {
let mut deps = self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
let mut deps = Select::merge(
self.make_deps(
krate.common_attrs.deps.clone(),
krate.common_attrs.extra_deps.clone(),
),
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
),
);
if let Some(library_target_name) = &krate.library_target_name {
deps.insert(
Expand All @@ -741,13 +744,6 @@ impl Renderer {
}
SelectSet::new(deps, platforms)
},
proc_macro_deps: SelectSet::new(
self.make_deps(
krate.common_attrs.proc_macro_deps.clone(),
krate.common_attrs.extra_proc_macro_deps.clone(),
),
platforms,
),
aliases: SelectDict::new(self.make_aliases(krate, false, false), platforms),
common: self.make_common_attrs(platforms, krate, target)?,
})
Expand Down
8 changes: 0 additions & 8 deletions crate_universe/src/utils/starlark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,6 @@ pub(crate) struct CargoBuildScript {
pub(crate) links: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) pkg_name: Option<String>,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) proc_macro_deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectScalar::is_empty")]
pub(crate) rundir: SelectScalar<String>,
#[serde(skip_serializing_if = "SelectDict::is_empty")]
Expand Down Expand Up @@ -153,8 +151,6 @@ pub(crate) struct RustProcMacro {
pub(crate) name: String,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) proc_macro_deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectDict::is_empty")]
pub(crate) aliases: SelectDict<Label, String>,
#[serde(flatten)]
Expand All @@ -166,8 +162,6 @@ pub(crate) struct RustLibrary {
pub(crate) name: String,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) proc_macro_deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectDict::is_empty")]
pub(crate) aliases: SelectDict<Label, String>,
#[serde(flatten)]
Expand All @@ -181,8 +175,6 @@ pub(crate) struct RustBinary {
pub(crate) name: String,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectSet::is_empty")]
pub(crate) proc_macro_deps: SelectSet<Label>,
#[serde(skip_serializing_if = "SelectDict::is_empty")]
pub(crate) aliases: SelectDict<Label, String>,
#[serde(flatten)]
Expand Down
6 changes: 4 additions & 2 deletions crate_universe/tools/cross_installer/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ rust_binary(
"@rules_rust//rust/toolchain:current_cargo_files",
],
edition = "2021",
proc_macro_deps = all_crate_deps(proc_macro = True),
rustc_env = {
"CARGO": "$(rlocationpath @rules_rust//rust/toolchain:current_cargo_files)",
"CROSS_BIN": "$(rlocationpath :cross)",
"CROSS_CONFIG_RLOCATION": "$(rlocationpath :Cross.toml)",
},
deps = all_crate_deps(normal = True) + ["@rules_rust//rust/runfiles"],
deps = all_crate_deps(
normal = True,
proc_macro = True,
) + ["@rules_rust//rust/runfiles"],
)

filegroup(
Expand Down
6 changes: 4 additions & 2 deletions crate_universe/tools/urls_generator/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ rust_binary(
"//crate_universe/private:urls.bzl",
],
edition = "2021",
proc_macro_deps = all_crate_deps(proc_macro = True),
rustc_env = {
"MODULE_ROOT_PATH": "$(rootpath //crate_universe/private:urls.bzl)",
},
deps = all_crate_deps(normal = True),
deps = all_crate_deps(
normal = True,
proc_macro = True,
),
)
7 changes: 5 additions & 2 deletions extensions/wasm_bindgen/private/wasm_bindgen_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ load(
"@rules_rust//rust/private:utils.bzl",
"determine_output_hash",
"expand_dict_value_locations",
"filter_deps",
"find_toolchain",
"generate_output_diagnostics",
"get_import_macro_deps",
Expand Down Expand Up @@ -67,8 +68,10 @@ def _rust_wasm_bindgen_test_impl(ctx):
toolchain = find_toolchain(ctx)

crate_type = "bin"
deps = transform_deps(ctx.attr.deps + [wb_toolchain.wasm_bindgen_test])
proc_macro_deps = transform_deps(ctx.attr.proc_macro_deps + get_import_macro_deps(ctx))

deps, proc_macro_deps = filter_deps(ctx)
deps = transform_deps(deps + [wb_toolchain.wasm_bindgen_test])
proc_macro_deps = transform_deps(proc_macro_deps + get_import_macro_deps(ctx))

# Target is building the crate in `test` config
if WasmBindgenTestCrateInfo in ctx.attr.wasm:
Expand Down
29 changes: 22 additions & 7 deletions rust/defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -76,25 +76,40 @@ load(
_rust_unpretty_aspect = "rust_unpretty_aspect",
)

rust_library = _rust_library
def _rule_wrapper(rule):
def _wrapped(name, deps = [], proc_macro_deps = [], **kwargs):
if proc_macro_deps:
print("proc_macros can now be passed directly to `deps`, no need to use `proc_macro_deps` in %s" % native.package_relative_label(name)) # buildifier: disable=print

rule(
name = name,
deps = deps + proc_macro_deps,
# TODO(zbarsky): This attribute would ideally be called `exec_configured_deps` or similar.
proc_macro_deps = deps + proc_macro_deps,
**kwargs
)

return _wrapped

rust_library = _rule_wrapper(_rust_library)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_static_library = _rust_static_library
rust_static_library = _rule_wrapper(_rust_static_library)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_shared_library = _rust_shared_library
rust_shared_library = _rule_wrapper(_rust_shared_library)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_proc_macro = _rust_proc_macro
rust_proc_macro = _rule_wrapper(_rust_proc_macro)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_binary = _rust_binary
rust_binary = _rule_wrapper(_rust_binary)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_library_group = _rust_library_group
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_test = _rust_test
rust_test = _rule_wrapper(_rust_test)
# See @rules_rust//rust/private:rust.bzl for a complete description.

rust_test_suite = _rust_test_suite
Expand All @@ -103,7 +118,7 @@ rust_test_suite = _rust_test_suite
rust_doc = _rust_doc
# See @rules_rust//rust/private:rustdoc.bzl for a complete description.

rust_doc_test = _rust_doc_test
rust_doc_test = _rule_wrapper(_rust_doc_test)
# See @rules_rust//rust/private:rustdoc_test.bzl for a complete description.

clippy_flag = _clippy_flag
Expand Down
Loading