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:
16
rust/rust.go
16
rust/rust.go
@@ -722,10 +722,11 @@ type dependencyTag struct {
|
||||
}
|
||||
|
||||
var (
|
||||
rlibDepTag = dependencyTag{name: "rlibTag", library: true}
|
||||
dylibDepTag = dependencyTag{name: "dylib", library: true}
|
||||
procMacroDepTag = dependencyTag{name: "procMacro", proc_macro: true}
|
||||
testPerSrcDepTag = dependencyTag{name: "rust_unit_tests"}
|
||||
customBindgenDepTag = dependencyTag{name: "customBindgenTag"}
|
||||
rlibDepTag = dependencyTag{name: "rlibTag", library: true}
|
||||
dylibDepTag = dependencyTag{name: "dylib", library: true}
|
||||
procMacroDepTag = dependencyTag{name: "procMacro", proc_macro: true}
|
||||
testPerSrcDepTag = dependencyTag{name: "rust_unit_tests"}
|
||||
)
|
||||
|
||||
type autoDep struct {
|
||||
@@ -1009,6 +1010,13 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
||||
actx.AddVariationDependencies(commonDepVariations, cc.CrtEndDepTag, deps.CrtEnd)
|
||||
}
|
||||
|
||||
if mod.sourceProvider != nil {
|
||||
if bindgen, ok := mod.sourceProvider.(*bindgenDecorator); ok &&
|
||||
bindgen.Properties.Custom_bindgen != "" {
|
||||
actx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(), customBindgenDepTag,
|
||||
bindgen.Properties.Custom_bindgen)
|
||||
}
|
||||
}
|
||||
// proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy.
|
||||
actx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(), procMacroDepTag, deps.ProcMacros...)
|
||||
}
|
||||
|
Reference in New Issue
Block a user