Add recovery_available to cc_genrule

recovery_available property is required in cc_genrule. Specifically,
we will mark libminijail as recovery_available:true as part of building
adbd and other stuffs for recovery. Some source code of libminijail is
created via cc_genrule, so we need recovery_available in the module
type.

Bug: 79146551
Test: m -j
Change-Id: I0cf0d9b1004dda055373573e5c5a7debd112685f
This commit is contained in:
Jiyong Park
2018-05-24 13:36:56 +09:00
parent 78a01965d0
commit 3f736c9661
2 changed files with 30 additions and 6 deletions

View File

@@ -1554,16 +1554,35 @@ func imageMutator(mctx android.BottomUpMutatorContext) {
}
if genrule, ok := mctx.Module().(*genrule.Module); ok {
if props, ok := genrule.Extra.(*VendorProperties); ok {
if props, ok := genrule.Extra.(*GenruleExtraProperties); ok {
var coreVariantNeeded bool = false
var vendorVariantNeeded bool = false
var recoveryVariantNeeded bool = false
if mctx.DeviceConfig().VndkVersion() == "" {
mctx.CreateVariations(coreMode)
coreVariantNeeded = true
} else if Bool(props.Vendor_available) {
mctx.CreateVariations(coreMode, vendorMode)
coreVariantNeeded = true
vendorVariantNeeded = true
} else if mctx.SocSpecific() || mctx.DeviceSpecific() {
mctx.CreateVariations(vendorMode)
vendorVariantNeeded = true
} else {
mctx.CreateVariations(coreMode)
coreVariantNeeded = true
}
if Bool(props.Recovery_available) {
recoveryVariantNeeded = true
}
var variants []string
if coreVariantNeeded {
variants = append(variants, coreMode)
}
if vendorVariantNeeded {
variants = append(variants, vendorMode)
}
if recoveryVariantNeeded {
variants = append(variants, recoveryMode)
}
mctx.CreateVariations(variants...)
}
}