Contents validation of override_apex's bootclasspath fragments
https://r.android.com/3083813 added support for overriding min_sdk_version, and creating separate variants of transitive dependencies of override apexes. This causes issues when there is a skew between apex boot jars of source and prebuilt mainline modules. For mediaprovider google apex, we now have _two_ source variants of mediaprovider bcp fragment module. This CL uses ApexInfo.BaseApexName to skip the check on both variants of bootclasspath/systemserverclasspath fragments. This CL also removes the prefix based check to determine if prebuilts are active. If RELEASE_APEX_CONTRIBUTIONS for a specific mainline module is set, it will be assumed that prebuilts for that mainline module are active. Test: go test ./apex ./java Bug: 361771739 Change-Id: I01f7ef437df8f10b74ffa397ba461ff4f1f9bed6
This commit is contained in:
@@ -210,15 +210,19 @@ func disableSourceApexVariant(ctx android.BaseModuleContext) bool {
|
||||
}
|
||||
})
|
||||
// Find the apex variant for this module
|
||||
_, apexVariantsWithoutTestApexes, _ := android.ListSetDifference(apexInfo.InApexVariants, apexInfo.TestApexes)
|
||||
var apexVariantsWithoutTestApexes []string
|
||||
if apexInfo.BaseApexName != "" {
|
||||
// This is a transitive dependency of an override_apex
|
||||
apexVariantsWithoutTestApexes = []string{apexInfo.BaseApexName}
|
||||
} else {
|
||||
_, apexVariantsWithoutTestApexes, _ = android.ListSetDifference(apexInfo.InApexVariants, apexInfo.TestApexes)
|
||||
}
|
||||
disableSource := false
|
||||
// find the selected apexes
|
||||
for _, apexVariant := range apexVariantsWithoutTestApexes {
|
||||
for _, selected := range psi.GetSelectedModulesForApiDomain(apexVariant) {
|
||||
// If the apex_contribution for this api domain contains a prebuilt apex, disable the source variant
|
||||
if strings.HasPrefix(selected, "prebuilt_com.google.android") {
|
||||
disableSource = true
|
||||
}
|
||||
if len(psi.GetSelectedModulesForApiDomain(apexVariant)) > 0 {
|
||||
// If the apex_contribution for this api domain is non-empty, disable the source variant
|
||||
disableSource = true
|
||||
}
|
||||
}
|
||||
return disableSource
|
||||
|
Reference in New Issue
Block a user