rust ffi libraries can be included in APEX
This CL fixes a bug that rust_ffi_shared libraries can't be included in an APEX either directly (via native_shared_libs property) or indirectly. Bug: 175105284 Test: m Change-Id: I2e2d3e11b3901f3412b9725e47a8ebf31f93847b
This commit is contained in:
15
apex/apex.go
15
apex/apex.go
@@ -522,11 +522,8 @@ func addDependenciesForNativeModules(ctx android.BottomUpMutatorContext, nativeM
|
||||
|
||||
if ctx.Device() {
|
||||
binVariations = append(binVariations, blueprint.Variation{Mutator: "image", Variation: imageVariation})
|
||||
libVariations = append(libVariations,
|
||||
blueprint.Variation{Mutator: "image", Variation: imageVariation},
|
||||
blueprint.Variation{Mutator: "version", Variation: ""}) // "" is the non-stub variant
|
||||
rustLibVariations = append(rustLibVariations,
|
||||
blueprint.Variation{Mutator: "image", Variation: imageVariation})
|
||||
libVariations = append(libVariations, blueprint.Variation{Mutator: "image", Variation: imageVariation})
|
||||
rustLibVariations = append(rustLibVariations, blueprint.Variation{Mutator: "image", Variation: imageVariation})
|
||||
}
|
||||
|
||||
// Use *FarVariation* to be able to depend on modules having conflicting variations with
|
||||
@@ -1522,6 +1519,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
provideNativeLibs = append(provideNativeLibs, fi.stem())
|
||||
}
|
||||
return true // track transitive dependencies
|
||||
} else if r, ok := child.(*rust.Module); ok {
|
||||
fi := apexFileForRustLibrary(ctx, r)
|
||||
filesInfo = append(filesInfo, fi)
|
||||
} else {
|
||||
propertyName := "native_shared_libs"
|
||||
if isJniLib {
|
||||
@@ -1683,6 +1683,11 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
filesInfo = append(filesInfo, af)
|
||||
return true // track transitive dependencies
|
||||
} else if rm, ok := child.(*rust.Module); ok {
|
||||
af := apexFileForRustLibrary(ctx, rm)
|
||||
af.transitiveDep = true
|
||||
filesInfo = append(filesInfo, af)
|
||||
return true // track transitive dependencies
|
||||
}
|
||||
} else if cc.IsTestPerSrcDepTag(depTag) {
|
||||
if cc, ok := child.(*cc.Module); ok {
|
||||
|
Reference in New Issue
Block a user