Merge "Fix on-device paths to used libraries in dexpreopt."

This commit is contained in:
Ulyana Trafimovich
2020-06-11 13:47:19 +00:00
committed by Gerrit Code Review
4 changed files with 30 additions and 7 deletions

View File

@@ -1883,16 +1883,22 @@ func (u *usesLibrary) usesLibraryPaths(ctx android.ModuleContext) dexpreopt.Libr
ctx.VisitDirectDepsWithTag(usesLibTag, func(m android.Module) {
dep := ctx.OtherModuleName(m)
if lib, ok := m.(Dependency); ok {
if dexJar := lib.DexJarBuildPath(); dexJar != nil {
usesLibPaths[dep] = &dexpreopt.LibraryPath{
dexJar,
// TODO(b/132357300): propagate actual install paths here.
filepath.Join("/system/framework", dep+".jar"),
}
} else {
buildPath := lib.DexJarBuildPath()
if buildPath == nil {
ctx.ModuleErrorf("module %q in uses_libs or optional_uses_libs must"+
" produce a dex jar, does it have installable: true?", dep)
return
}
var devicePath string
installPath := lib.DexJarInstallPath()
if installPath == nil {
devicePath = filepath.Join("/system/framework", dep+".jar")
} else {
devicePath = android.InstallPathToOnDevicePath(ctx, installPath.(android.InstallPath))
}
usesLibPaths[dep] = &dexpreopt.LibraryPath{buildPath, devicePath}
} else if ctx.Config().AllowMissingDependencies() {
ctx.AddMissingDependencies([]string{dep})
} else {