Merge "Install external deps of an APEX"
This commit is contained in:
14
apex/apex.go
14
apex/apex.go
@@ -389,6 +389,9 @@ type apexBundle struct {
|
|||||||
// list of files to be included in this apex
|
// list of files to be included in this apex
|
||||||
filesInfo []apexFile
|
filesInfo []apexFile
|
||||||
|
|
||||||
|
// list of module names that this APEX is depending on
|
||||||
|
externalDeps []string
|
||||||
|
|
||||||
flattened bool
|
flattened bool
|
||||||
|
|
||||||
testApex bool
|
testApex bool
|
||||||
@@ -731,6 +734,14 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
if am, ok := child.(android.ApexModule); ok && am.CanHaveApexVariants() && am.IsInstallableToApex() {
|
if am, ok := child.(android.ApexModule); ok && am.CanHaveApexVariants() && am.IsInstallableToApex() {
|
||||||
if cc, ok := child.(*cc.Module); ok {
|
if cc, ok := child.(*cc.Module); ok {
|
||||||
if cc.IsStubs() || cc.HasStubsVariants() {
|
if cc.IsStubs() || cc.HasStubsVariants() {
|
||||||
|
// If the dependency is a stubs lib, don't include it in this APEX,
|
||||||
|
// but make sure that the lib is installed on the device.
|
||||||
|
// In case no APEX is having the lib, the lib is installed to the system
|
||||||
|
// partition.
|
||||||
|
if !android.DirectlyInAnyApex(ctx, cc.Name()) && !android.InList(cc.Name(), a.externalDeps) {
|
||||||
|
a.externalDeps = append(a.externalDeps, cc.Name())
|
||||||
|
}
|
||||||
|
// Don't track further
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
depName := ctx.OtherModuleName(child)
|
depName := ctx.OtherModuleName(child)
|
||||||
@@ -1126,6 +1137,9 @@ func (a *apexBundle) androidMkForType(apexType apexPackaging) android.AndroidMkD
|
|||||||
if len(moduleNames) > 0 {
|
if len(moduleNames) > 0 {
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
||||||
}
|
}
|
||||||
|
if len(a.externalDeps) > 0 {
|
||||||
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.externalDeps, " "))
|
||||||
|
}
|
||||||
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
||||||
|
|
||||||
if apexType == imageApex {
|
if apexType == imageApex {
|
||||||
|
Reference in New Issue
Block a user