Skip creating variants for disabled OSes

The documentation java_genrule_host states that it creates a single
variant, which would make it work with the single variant fallback
in AddDependency used by the data property, but it actually has a host
and a host-cross windows variant.  Modify osMutator to take the
OS-specific enabled properties into account to skip creating variants
that will immediately be disabled so there is a single variant.

Test: m checkbuild
Change-Id: Ic2daab29f4fa3a3797d7a08348fbfcf1036ec5dc
This commit is contained in:
Colin Cross
2020-11-16 22:44:30 -08:00
parent 34037c66ae
commit d976af0cb4
5 changed files with 56 additions and 8 deletions

View File

@@ -757,7 +757,7 @@ func osMutator(bpctx blueprint.BottomUpMutatorContext) {
for _, os := range OsTypeList {
for _, t := range mctx.Config().Targets[os] {
if base.supportsTarget(t) {
if base.supportsTarget(t) && base.osEnabled(os) {
moduleOSList = append(moduleOSList, os)
break
}
@@ -1183,6 +1183,16 @@ func InitArchModule(m Module) {
}
base.archProperties = append(base.archProperties, archProperties)
m.AddProperties(archProperties...)
// Special case the enabled property so the osMutator can skip creating variants that
// are disabled.
if properties == &base.enabledProperties {
if len(archProperties) != 1 {
panic(fmt.Errorf("expected a single arch-specific enabledProperties type, found %d",
len(archProperties)))
}
base.archEnabledProperties = archProperties[0].(*archPropRoot)
}
}
base.customizableProperties = m.GetProperties()