Merge "soong: Support system_server jars from apexes" am: ac25dd3cb2

am: 168c17e1e0

Change-Id: I2c24ea8a7f42857429084f3a6aa1226aee804b2e
This commit is contained in:
Roshan Pius
2019-11-22 19:18:05 -08:00
committed by android-build-merger
2 changed files with 21 additions and 3 deletions

View File

@@ -44,9 +44,10 @@ type GlobalConfig struct {
ProductUpdatableBootModules []string
ProductUpdatableBootLocations []string
SystemServerJars []string // jars that form the system server
SystemServerApps []string // apps that are loaded into system server
SpeedApps []string // apps that should be speed optimized
SystemServerJars []string // jars that form the system server
SystemServerApps []string // apps that are loaded into system server
UpdatableSystemServerJars []string // jars within apex that are loaded into system server
SpeedApps []string // apps that should be speed optimized
PreoptFlags []string // global dex2oat flags that should be used if no module-specific dex2oat flags are specified
@@ -285,6 +286,7 @@ func GlobalConfigForTests(ctx android.PathContext) GlobalConfig {
ProductUpdatableBootLocations: nil,
SystemServerJars: nil,
SystemServerApps: nil,
UpdatableSystemServerJars: nil,
SpeedApps: nil,
PreoptFlags: nil,
DefaultCompilerFilter: "",

View File

@@ -15,6 +15,7 @@
package java
import (
"fmt"
"path/filepath"
"strings"
@@ -65,6 +66,16 @@ func setDexpreoptTestGlobalConfig(config android.Config, globalConfig dexpreopt.
var dexpreoptGlobalConfigKey = android.NewOnceKey("DexpreoptGlobalConfig")
var dexpreoptTestGlobalConfigKey = android.NewOnceKey("TestDexpreoptGlobalConfig")
// Expected format for apexJarValue = <apex name>:<jar name>
func splitApexJarPair(apexJarValue string) (string, string) {
var apexJarPair []string = strings.SplitN(apexJarValue, ":", 2)
if apexJarPair == nil || len(apexJarPair) != 2 {
panic(fmt.Errorf("malformed apexJarValue: %q, expected format: <apex>:<jar>",
apexJarValue))
}
return apexJarPair[0], apexJarPair[1]
}
// systemServerClasspath returns the on-device locations of the modules in the system server classpath. It is computed
// once the first time it is called for any ctx.Config(), and returns the same slice for all future calls with the same
// ctx.Config().
@@ -77,6 +88,11 @@ func systemServerClasspath(ctx android.PathContext) []string {
systemServerClasspathLocations = append(systemServerClasspathLocations,
filepath.Join("/system/framework", m+".jar"))
}
for _, m := range global.UpdatableSystemServerJars {
apex, jar := splitApexJarPair(m)
systemServerClasspathLocations = append(systemServerClasspathLocations,
filepath.Join("/apex", apex, "javalib", jar + ".jar"))
}
return systemServerClasspathLocations
})
}