diff --git a/extensions/prost/private/prost.bzl b/extensions/prost/private/prost.bzl index 1859d526b6..ebc6bd46b7 100644 --- a/extensions/prost/private/prost.bzl +++ b/extensions/prost/private/prost.bzl @@ -66,7 +66,7 @@ def _compile_proto( lib_rs = ctx.actions.declare_file("{}.lib.rs".format(ctx.label.name)) proto_compiler = prost_toolchain.proto_compiler - tools = depset([proto_compiler.executable]) + tools = [proto_compiler.executable] tonic_opts = [] prost_opts = [] @@ -78,34 +78,33 @@ def _compile_proto( all_additional_srcs = depset(transitive = additional_srcs) direct_crate_names = [dep[ProstProtoInfo].dep_variant_info.crate_info.name for dep in deps] - additional_args = ctx.actions.args() # Prost process wrapper specific args - compile_well_known_types = prost_toolchain.compile_well_known_types - additional_args.add("--protoc={}".format(proto_compiler.executable.path)) - additional_args.add("--label={}".format(ctx.label)) - additional_args.add("--out_librs={}".format(lib_rs.path)) + additional_args = ctx.actions.args() + additional_args.add(proto_compiler.executable, format = "--protoc=%s") + additional_args.add(ctx.label, format = "--label=%s") + additional_args.add(lib_rs, format = "--out_librs=%s") additional_args.add("--package_info_output={}".format("{}={}".format(crate_name, package_info_file.path))) - additional_args.add("--deps_info={}".format(deps_info_file.path)) - additional_args.add("--direct_dep_crate_names={}".format(",".join(direct_crate_names))) - if compile_well_known_types: + additional_args.add(deps_info_file, format = "--deps_info=%s") + additional_args.add_joined(direct_crate_names, join_with = ",", format_joined = "--direct_dep_crate_names=%s") + if prost_toolchain.compile_well_known_types: additional_args.add("--compile_well_known_types") - additional_args.add("--descriptor_set={}".format(proto_info.direct_descriptor_set.path)) - additional_args.add("--additional_srcs={}".format(",".join([f.path for f in all_additional_srcs.to_list()]))) + additional_args.add(proto_info.direct_descriptor_set, format = "--descriptor_set=%s") + additional_args.add_joined(all_additional_srcs, join_with = ",", format_joined = "--additional_srcs=%s") additional_args.add_all(prost_toolchain.prost_opts + prost_opts, format_each = "--prost_opt=%s") if prost_toolchain.tonic_plugin: tonic_plugin = prost_toolchain.tonic_plugin[DefaultInfo].files_to_run - additional_args.add(prost_toolchain.tonic_plugin_flag % tonic_plugin.executable.path) + additional_args.add(tonic_plugin.executable, format = prost_toolchain.tonic_plugin_flag) additional_args.add("--tonic_opt=no_include") additional_args.add("--is_tonic") additional_args.add_all(prost_toolchain.tonic_opts + tonic_opts, format_each = "--tonic_opt=%s") - tools = depset([tonic_plugin.executable], transitive = [tools]) + tools.append(tonic_plugin.executable) if rustfmt_toolchain: - additional_args.add("--rustfmt={}".format(rustfmt_toolchain.rustfmt.path)) - tools = depset(transitive = [tools, rustfmt_toolchain.all_files]) + additional_args.add(rustfmt_toolchain.rustfmt, format = "--rustfmt=%s") + tools = depset(tools, transitive = [rustfmt_toolchain.all_files]).to_list() additional_inputs = depset( [deps_info_file, proto_info.direct_descriptor_set] + [dep[ProstProtoInfo].package_info for dep in deps], @@ -115,7 +114,7 @@ def _compile_proto( proto_common.compile( actions = ctx.actions, proto_info = proto_info, - additional_tools = tools.to_list(), + additional_tools = tools, additional_inputs = additional_inputs, additional_args = additional_args, generated_files = [lib_rs, package_info_file], @@ -208,7 +207,7 @@ def _compile_rust( name = crate_name, type = "rlib", root = src, - srcs = depset([src]), + srcs = [src], deps = deps, proc_macro_deps = [], aliases = {}, diff --git a/extensions/protobuf/proto.bzl b/extensions/protobuf/proto.bzl index defc783bda..40fa81d9e6 100644 --- a/extensions/protobuf/proto.bzl +++ b/extensions/protobuf/proto.bzl @@ -228,7 +228,7 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr name = crate_name, type = "rlib", root = lib_rs, - srcs = depset(srcs), + srcs = srcs, deps = compile_action_deps, proc_macro_deps = [], aliases = {}, diff --git a/extensions/wasm_bindgen/private/wasm_bindgen_test.bzl b/extensions/wasm_bindgen/private/wasm_bindgen_test.bzl index 7b52f81cf5..2502a19f54 100644 --- a/extensions/wasm_bindgen/private/wasm_bindgen_test.bzl +++ b/extensions/wasm_bindgen/private/wasm_bindgen_test.bzl @@ -121,7 +121,7 @@ def _rust_wasm_bindgen_test_impl(ctx): name = crate.name, type = crate_type, root = crate.root, - srcs = depset(srcs, transitive = [crate.srcs]), + srcs = depset(srcs, transitive = [crate.srcs]).to_list(), deps = depset(deps, transitive = [crate.deps]).to_list(), proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]).to_list(), aliases = {}, diff --git a/rust/private/rust.bzl b/rust/private/rust.bzl index 864cdec93e..2f695cbbb9 100644 --- a/rust/private/rust.bzl +++ b/rust/private/rust.bzl @@ -220,7 +220,7 @@ def _rust_library_common(ctx, crate_type): name = crate_name, type = crate_type, root = crate_root, - srcs = depset(srcs), + srcs = srcs, deps = deps, proc_macro_deps = proc_macro_deps, aliases = ctx.attr.aliases, @@ -285,7 +285,7 @@ def _rust_binary_impl(ctx): name = crate_name, type = ctx.attr.crate_type, root = crate_root, - srcs = depset(srcs), + srcs = srcs, deps = deps, proc_macro_deps = proc_macro_deps, aliases = ctx.attr.aliases, @@ -417,7 +417,7 @@ def _rust_test_impl(ctx): name = crate_name, type = crate_type, root = crate.root, - srcs = depset(srcs), + srcs = srcs, deps = depset(deps, transitive = [crate.deps]).to_list(), proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]).to_list(), aliases = aliases, @@ -483,7 +483,7 @@ def _rust_test_impl(ctx): name = crate_name, type = crate_type, root = crate_root, - srcs = depset(srcs), + srcs = srcs, deps = deps, proc_macro_deps = proc_macro_deps, aliases = ctx.attr.aliases, diff --git a/rust/private/rustc.bzl b/rust/private/rustc.bzl index 105352a8b8..2ecfe40849 100644 --- a/rust/private/rustc.bzl +++ b/rust/private/rustc.bzl @@ -1204,15 +1204,18 @@ def rustc_compile_action( """ deps = crate_info_dict.pop("deps") proc_macro_deps = crate_info_dict.pop("proc_macro_deps") + srcs = crate_info_dict.pop("srcs") + crate_info = rust_common.create_crate_info( deps = depset(deps), proc_macro_deps = depset(proc_macro_deps), + srcs = depset(srcs), **crate_info_dict ) - build_metadata = crate_info_dict.get("metadata", None) - rustc_output = crate_info_dict.get("rustc_output", None) - rustc_rmeta_output = crate_info_dict.get("rustc_rmeta_output", None) + build_metadata = crate_info.metadata + rustc_output = crate_info.rustc_output + rustc_rmeta_output = crate_info.rustc_rmeta_output # Determine whether to use cc_common.link: # * either if experimental_use_cc_common_link is 1, @@ -1230,7 +1233,7 @@ def rustc_compile_action( dep_info, build_info, linkstamps = collect_deps( deps = deps, proc_macro_deps = proc_macro_deps, - aliases = crate_info_dict["aliases"], + aliases = crate_info.aliases, ) extra_disabled_features = [RUST_LINK_CC_FEATURE] if crate_info.type in ["bin", "cdylib"] and dep_info.transitive_noncrates.to_list(): @@ -1399,7 +1402,7 @@ def rustc_compile_action( crate_info.type, ctx.label.name, formatted_version, - len(crate_info.srcs.to_list()), + len(srcs), ), toolchain = "@rules_rust//rust:toolchain_type", resource_set = get_rustc_resource_set(toolchain), @@ -1416,7 +1419,7 @@ def rustc_compile_action( crate_info.type, ctx.label.name, formatted_version, - len(crate_info.srcs.to_list()), + len(srcs), ), toolchain = "@rules_rust//rust:toolchain_type", ) @@ -1435,7 +1438,7 @@ def rustc_compile_action( crate_info.type, ctx.label.name, formatted_version, - len(crate_info.srcs.to_list()), + len(srcs), ), toolchain = "@rules_rust//rust:toolchain_type", resource_set = get_rustc_resource_set(toolchain), @@ -1604,6 +1607,7 @@ def rustc_compile_action( crate_info = rust_common.create_crate_info( deps = depset(deps), proc_macro_deps = depset(proc_macro_deps), + srcs = depset(srcs), **crate_info_dict ) diff --git a/test/unit/consistent_crate_name/with_modified_crate_name.bzl b/test/unit/consistent_crate_name/with_modified_crate_name.bzl index 0a3f5b6699..7148b0f0b8 100644 --- a/test/unit/consistent_crate_name/with_modified_crate_name.bzl +++ b/test/unit/consistent_crate_name/with_modified_crate_name.bzl @@ -11,7 +11,7 @@ load("//rust/private:rustc.bzl", "rustc_compile_action") def _with_modified_crate_name_impl(ctx): toolchain = ctx.toolchains[Label("//rust:toolchain_type")] - crate_root = ctx.attr.src.files.to_list()[0] + crate_root = ctx.file.src output_hash = repr(hash(crate_root.path)) crate_name = ctx.label.name + "_my_custom_crate_suffix" crate_type = "rlib" @@ -39,7 +39,7 @@ def _with_modified_crate_name_impl(ctx): name = crate_name, type = crate_type, root = crate_root, - srcs = ctx.attr.src.files, + srcs = ctx.files.src, deps = deps, proc_macro_deps = [], aliases = {}, diff --git a/test/unit/force_all_deps_direct/generator.bzl b/test/unit/force_all_deps_direct/generator.bzl index 0418303036..09fba1f423 100644 --- a/test/unit/force_all_deps_direct/generator.bzl +++ b/test/unit/force_all_deps_direct/generator.bzl @@ -55,7 +55,7 @@ def _generator_impl(ctx): name = crate_name, type = crate_type, root = rs_file, - srcs = depset([rs_file]), + srcs = [rs_file], deps = deps, proc_macro_deps = [], aliases = {}, diff --git a/test/unit/pipelined_compilation/wrap.bzl b/test/unit/pipelined_compilation/wrap.bzl index bf71570f9a..4a0bd994b6 100644 --- a/test/unit/pipelined_compilation/wrap.bzl +++ b/test/unit/pipelined_compilation/wrap.bzl @@ -67,7 +67,7 @@ def _wrap_impl(ctx): name = crate_name, type = crate_type, root = rs_file, - srcs = depset([rs_file]), + srcs = [rs_file], deps = deps, proc_macro_deps = [], aliases = {},