Merge "Check consistency of the BootJars/UpdatableBootJars config"

This commit is contained in:
Paul Duffin
2021-04-24 08:54:27 +00:00
committed by Gerrit Code Review

View File

@@ -17,6 +17,7 @@ package dexpreopt
import (
"encoding/json"
"fmt"
"reflect"
"strings"
"github.com/google/blueprint"
@@ -522,7 +523,27 @@ func ParseGlobalSoongConfig(ctx android.PathContext, data []byte) (*GlobalSoongC
return config, nil
}
// checkBootJarsConfigConsistency checks the consistency of BootJars and UpdatableBootJars fields in
// DexpreoptGlobalConfig and Config.productVariables.
func checkBootJarsConfigConsistency(ctx android.SingletonContext, dexpreoptConfig *GlobalConfig, config android.Config) {
compareBootJars := func(property string, dexpreoptJars, variableJars android.ConfiguredJarList) {
dexpreoptPairs := dexpreoptJars.CopyOfApexJarPairs()
variablePairs := variableJars.CopyOfApexJarPairs()
if !reflect.DeepEqual(dexpreoptPairs, variablePairs) {
ctx.Errorf("Inconsistent configuration of %[1]s\n"+
" dexpreopt.GlobalConfig.%[1]s = %[2]s\n"+
" productVariables.%[1]s = %[3]s",
property, dexpreoptPairs, variablePairs)
}
}
compareBootJars("BootJars", dexpreoptConfig.BootJars, config.NonUpdatableBootJars())
compareBootJars("UpdatableBootJars", dexpreoptConfig.UpdatableBootJars, config.UpdatableBootJars())
}
func (s *globalSoongConfigSingleton) GenerateBuildActions(ctx android.SingletonContext) {
checkBootJarsConfigConsistency(ctx, GetGlobalConfig(ctx), ctx.Config())
if GetGlobalConfig(ctx).DisablePreopt {
return
}