From afe001f7b9b0e9a92c543e5a54bf6432b71ea4cd Mon Sep 17 00:00:00 2001 From: Ethan Smith Date: Wed, 17 Dec 2025 15:24:07 -0800 Subject: [PATCH] Use executable in place of file. `ctx.executable` will automatcially propagate runfiles when passed as a tool. This is relevant for bazel's rustfmt which is a thin binary that spawns a subprocess to call the actual rustfmt binary from runfiles. PiperOrigin-RevId: 845940833 --- .../bazel_support/cc_bindings_from_rust_rule.bzl | 4 ++-- cc_bindings_from_rs/bazel_support/toolchain.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl b/cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl index 8ce511ea0..e0f9b1aa8 100644 --- a/cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl +++ b/cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl @@ -185,11 +185,11 @@ def _generate_bindings(ctx, target, basename, inputs, args, rustc_env, proto_cra ctx.actions.run( outputs = outputs, inputs = depset( - [ctx.file._clang_format, ctx.file._rustfmt, ctx.file._rustfmt_cfg], + [ctx.file._rustfmt_cfg], transitive = [inputs], ), env = rustc_env | verbose_log_env, - tools = [toolchain.binary], + tools = [toolchain.binary, ctx.executable._rustfmt, ctx.executable._clang_format], executable = ctx.executable._process_wrapper, mnemonic = "CcBindingsFromRust", progress_message = "Generating C++ bindings from Rust: %s" % h_out_file, diff --git a/cc_bindings_from_rs/bazel_support/toolchain.bzl b/cc_bindings_from_rs/bazel_support/toolchain.bzl index c3b4d52b4..cb3c8fa48 100644 --- a/cc_bindings_from_rs/bazel_support/toolchain.bzl +++ b/cc_bindings_from_rs/bazel_support/toolchain.bzl @@ -13,7 +13,7 @@ def _cc_bindings_from_rs_toolchain_impl(ctx): return [ platform_common.ToolchainInfo( cc_bindings_from_rs_toolchain_info = CcBindingsFromRustToolchainInfo( - binary = ctx.file.binary, + binary = ctx.executable.binary, ), ), ]