Add support for custom bindgen binaries.
In some cases customized logic is required to generate the expected bindgen bindings. This adds support for rust_bindgen modules to define a HostTool module to use instead of bindgen. Bug: 161816141 Test: New Soong tests pass. Test: Local test case shows custom_binary module being used for bindgen generation. Change-Id: Id52aec4f25c38206d7e585d8e662be7836aa1d4b
This commit is contained in:
@@ -55,3 +55,29 @@ func TestRustBindgen(t *testing.T) {
|
||||
t.Errorf("missing static_libs exported includes in rust_bindgen rule: cflags %#v", libbindgen.Args["cflags"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestRustBindgenCustomBindgen(t *testing.T) {
|
||||
ctx := testRust(t, `
|
||||
rust_bindgen {
|
||||
name: "libbindgen",
|
||||
wrapper_src: "src/any.h",
|
||||
crate_name: "bindgen",
|
||||
stem: "libbindgen",
|
||||
source_stem: "bindings",
|
||||
custom_bindgen: "my_bindgen"
|
||||
}
|
||||
rust_binary_host {
|
||||
name: "my_bindgen",
|
||||
srcs: ["foo.rs"],
|
||||
}
|
||||
`)
|
||||
|
||||
libbindgen := ctx.ModuleForTests("libbindgen", "android_arm64_armv8-a").Output("bindings.rs")
|
||||
|
||||
// The rule description should contain the custom binary name rather than bindgen, so checking the description
|
||||
// should be sufficient.
|
||||
if !strings.Contains(libbindgen.Description, "my_bindgen") {
|
||||
t.Errorf("Custom bindgen binary %s not used for libbindgen: rule description %#v", "my_bindgen",
|
||||
libbindgen.Description)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user