Support no configured device architectures

There are some builds where we only want to build host tools, and we may
not have a valid device configuration. Support 0 device architectures
and modules that don't have any configured way to build.

Change-Id: I732251e1cd3cdbfafbc6ef6a550e33e653876f7c
This commit is contained in:
Dan Willemsen
2016-07-11 14:36:48 -07:00
parent 76f0827ce3
commit 3f32f03067
2 changed files with 17 additions and 14 deletions

View File

@@ -435,6 +435,11 @@ func ArchMutator(mctx BottomUpMutatorContext) {
moduleTargets = append(moduleTargets, targets...) moduleTargets = append(moduleTargets, targets...)
} }
if len(moduleTargets) == 0 {
module.base().commonProperties.Enabled = boolPtr(false)
return
}
targetNames := make([]string, len(moduleTargets)) targetNames := make([]string, len(moduleTargets))
for i, target := range moduleTargets { for i, target := range moduleTargets {
@@ -762,21 +767,19 @@ func decodeTargetProductVariables(config Config) (map[OsClass][]Target, error) {
} }
} }
if variables.DeviceArch == nil { if variables.DeviceArch != nil && *variables.DeviceArch != "" {
return nil, fmt.Errorf("No device primary architecture set") addTarget(Android, *variables.DeviceArch, variables.DeviceArchVariant,
} variables.DeviceCpuVariant, variables.DeviceAbi)
addTarget(Android, *variables.DeviceArch, variables.DeviceArchVariant, if variables.DeviceSecondaryArch != nil && *variables.DeviceSecondaryArch != "" {
variables.DeviceCpuVariant, variables.DeviceAbi) addTarget(Android, *variables.DeviceSecondaryArch,
variables.DeviceSecondaryArchVariant, variables.DeviceSecondaryCpuVariant,
variables.DeviceSecondaryAbi)
if variables.DeviceSecondaryArch != nil && *variables.DeviceSecondaryArch != "" { deviceArches := targets[Device]
addTarget(Android, *variables.DeviceSecondaryArch, if deviceArches[0].Arch.ArchType.Multilib == deviceArches[1].Arch.ArchType.Multilib {
variables.DeviceSecondaryArchVariant, variables.DeviceSecondaryCpuVariant, deviceArches[1].Arch.Native = false
variables.DeviceSecondaryAbi) }
deviceArches := targets[Device]
if deviceArches[0].Arch.ArchType.Multilib == deviceArches[1].Arch.ArchType.Multilib {
deviceArches[1].Arch.Native = false
} }
} }

View File

@@ -909,7 +909,7 @@ func (c *Module) depsMutator(actx android.BottomUpMutatorContext) {
} }
func depsMutator(ctx android.BottomUpMutatorContext) { func depsMutator(ctx android.BottomUpMutatorContext) {
if c, ok := ctx.Module().(*Module); ok { if c, ok := ctx.Module().(*Module); ok && c.Enabled() {
c.depsMutator(ctx) c.depsMutator(ctx)
} }
} }