soong: Align update boot jar variable with system_server jar
Use apex:jar pair values for updatable boot jars to align with updatable system_server values. Test: Compiles & flashed device. Ensured that the bootclasspath & system_server class paths remain the same. Change-Id: I1d6dfe3325d9091b7c724458be4e6471f9086666
This commit is contained in:
parent
bf857716a1
commit
ccc26ef316
|
@ -38,11 +38,10 @@ type GlobalConfig struct {
|
||||||
DisableGenerateProfile bool // don't generate profiles
|
DisableGenerateProfile bool // don't generate profiles
|
||||||
ProfileDir string // directory to find profiles in
|
ProfileDir string // directory to find profiles in
|
||||||
|
|
||||||
BootJars []string // modules for jars that form the boot class path
|
BootJars []string // modules for jars that form the boot class path
|
||||||
|
UpdatableBootJars []string // jars within apex that form the boot class path
|
||||||
|
|
||||||
ArtApexJars []string // modules for jars that are in the ART APEX
|
ArtApexJars []string // modules for jars that are in the ART APEX
|
||||||
ProductUpdatableBootModules []string
|
|
||||||
ProductUpdatableBootLocations []string
|
|
||||||
|
|
||||||
SystemServerJars []string // jars that form the system server
|
SystemServerJars []string // jars that form the system server
|
||||||
SystemServerApps []string // apps that are loaded into system server
|
SystemServerApps []string // apps that are loaded into system server
|
||||||
|
@ -281,9 +280,8 @@ func GlobalConfigForTests(ctx android.PathContext) GlobalConfig {
|
||||||
DisableGenerateProfile: false,
|
DisableGenerateProfile: false,
|
||||||
ProfileDir: "",
|
ProfileDir: "",
|
||||||
BootJars: nil,
|
BootJars: nil,
|
||||||
|
UpdatableBootJars: nil,
|
||||||
ArtApexJars: nil,
|
ArtApexJars: nil,
|
||||||
ProductUpdatableBootModules: nil,
|
|
||||||
ProductUpdatableBootLocations: nil,
|
|
||||||
SystemServerJars: nil,
|
SystemServerJars: nil,
|
||||||
SystemServerApps: nil,
|
SystemServerApps: nil,
|
||||||
UpdatableSystemServerJars: nil,
|
UpdatableSystemServerJars: nil,
|
||||||
|
|
|
@ -554,6 +554,12 @@ func SplitApexJarPair(apexJarValue string) (string, string) {
|
||||||
return apexJarPair[0], apexJarPair[1]
|
return apexJarPair[0], apexJarPair[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Expected format for apexJarValue = <apex name>:<jar name>
|
||||||
|
func GetJarLocationFromApexJarPair(apexJarValue string) (string) {
|
||||||
|
apex, jar := SplitApexJarPair(apexJarValue)
|
||||||
|
return filepath.Join("/apex", apex, "javalib", jar + ".jar")
|
||||||
|
}
|
||||||
|
|
||||||
func contains(l []string, s string) bool {
|
func contains(l []string, s string) bool {
|
||||||
for _, e := range l {
|
for _, e := range l {
|
||||||
if e == s {
|
if e == s {
|
||||||
|
|
|
@ -78,9 +78,8 @@ func systemServerClasspath(ctx android.PathContext) []string {
|
||||||
filepath.Join("/system/framework", m+".jar"))
|
filepath.Join("/system/framework", m+".jar"))
|
||||||
}
|
}
|
||||||
for _, m := range global.UpdatableSystemServerJars {
|
for _, m := range global.UpdatableSystemServerJars {
|
||||||
apex, jar := dexpreopt.SplitApexJarPair(m)
|
|
||||||
systemServerClasspathLocations = append(systemServerClasspathLocations,
|
systemServerClasspathLocations = append(systemServerClasspathLocations,
|
||||||
filepath.Join("/apex", apex, "javalib", jar+".jar"))
|
dexpreopt.GetJarLocationFromApexJarPair(m))
|
||||||
}
|
}
|
||||||
return systemServerClasspathLocations
|
return systemServerClasspathLocations
|
||||||
})
|
})
|
||||||
|
@ -111,6 +110,15 @@ func stemOf(moduleName string) string {
|
||||||
return moduleName
|
return moduleName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getJarsFromApexJarPairs(apexJarPairs []string) []string {
|
||||||
|
modules := make([]string, len(apexJarPairs))
|
||||||
|
for i, p := range apexJarPairs {
|
||||||
|
_, jar := dexpreopt.SplitApexJarPair(p)
|
||||||
|
modules[i] = jar
|
||||||
|
}
|
||||||
|
return modules
|
||||||
|
}
|
||||||
|
|
||||||
// Construct a variant of the global config for dexpreopted bootclasspath jars. The variants differ
|
// Construct a variant of the global config for dexpreopted bootclasspath jars. The variants differ
|
||||||
// in the list of input jars (libcore, framework, or both), in the naming scheme for the dexpreopt
|
// in the list of input jars (libcore, framework, or both), in the naming scheme for the dexpreopt
|
||||||
// files (ART recognizes "apex" names as special), and whether to include a zip archive.
|
// files (ART recognizes "apex" names as special), and whether to include a zip archive.
|
||||||
|
@ -134,7 +142,7 @@ func getBootImageConfig(ctx android.PathContext, key android.OnceKey, name strin
|
||||||
}
|
}
|
||||||
|
|
||||||
if !artApexJarsOnly {
|
if !artApexJarsOnly {
|
||||||
nonFrameworkModules := concat(artModules, global.ProductUpdatableBootModules)
|
nonFrameworkModules := concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars))
|
||||||
frameworkModules := android.RemoveListFromList(global.BootJars, nonFrameworkModules)
|
frameworkModules := android.RemoveListFromList(global.BootJars, nonFrameworkModules)
|
||||||
imageModules = concat(imageModules, frameworkModules)
|
imageModules = concat(imageModules, frameworkModules)
|
||||||
|
|
||||||
|
@ -218,7 +226,11 @@ func defaultBootclasspath(ctx android.PathContext) []string {
|
||||||
return ctx.Config().OnceStringSlice(defaultBootclasspathKey, func() []string {
|
return ctx.Config().OnceStringSlice(defaultBootclasspathKey, func() []string {
|
||||||
global := dexpreoptGlobalConfig(ctx)
|
global := dexpreoptGlobalConfig(ctx)
|
||||||
image := defaultBootImageConfig(ctx)
|
image := defaultBootImageConfig(ctx)
|
||||||
bootclasspath := append(copyOf(image.dexLocations), global.ProductUpdatableBootLocations...)
|
updatableBootclasspath := make([]string, len(global.UpdatableBootJars))
|
||||||
|
for i, p := range global.UpdatableBootJars {
|
||||||
|
updatableBootclasspath[i] = dexpreopt.GetJarLocationFromApexJarPair(p)
|
||||||
|
}
|
||||||
|
bootclasspath := append(copyOf(image.dexLocations), updatableBootclasspath...)
|
||||||
return bootclasspath
|
return bootclasspath
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue