Propagate `--crate-type` into `cc_bindings_from_rs`.
PiperOrigin-RevId: 510503900
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 0928eac..99633a7 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
@@ -129,14 +129,14 @@
crate_root = crate_info.root
# TODO(b/258449205): Extract `rustc_args` from the target `crate` (instead
- # of figuring out the `crate_root` and hard-coding `--crate-type`,
- # `panic=abort`, etc.). It seems that `BuildInfo` from
+ # of figuring out the `crate_root` and hard-coding `panic=abort`, etc.).
+ # It seems that `BuildInfo` from
# @rules_rust//rust/private/providers.bzl is not
# exposed publicly?
rustc_args = ctx.actions.args()
rustc_args.add(crate_root)
rustc_args.add("--crate-name", crate_info.name)
- rustc_args.add("--crate-type", "lib")
+ rustc_args.add("--crate-type", crate_info.type)
rustc_args.add("--codegen", "panic=abort")
(h_out_file, rs_out_file) = _generate_bindings(ctx, basename, [crate_root], rustc_args)
diff --git a/cc_bindings_from_rs/test/bazel/unit_tests/generating_files/generating_files_test.bzl b/cc_bindings_from_rs/test/bazel/unit_tests/generating_files/generating_files_test.bzl
index 90232fb..c66728a 100644
--- a/cc_bindings_from_rs/test/bazel/unit_tests/generating_files/generating_files_test.bzl
+++ b/cc_bindings_from_rs/test/bazel/unit_tests/generating_files/generating_files_test.bzl
@@ -56,7 +56,7 @@
asserts.true(env, "rusty_lib_crate_root.rs" in [i.basename for i in generate_action.inputs.to_list()])
generate_cmdline = " ".join(generate_action.argv)
asserts.true(env, "rusty_lib_crate_root.rs" in generate_cmdline)
- asserts.true(env, "--crate-type lib" in generate_cmdline)
+ asserts.true(env, "--crate-type rlib" in generate_cmdline)
asserts.true(env, "--codegen panic=abort" in generate_cmdline)
# Verify that `CcBindingsFromRust` generates: