diff options
Diffstat (limited to 'java')
| -rwxr-xr-x | java/app.go | 43 | ||||
| -rw-r--r-- | java/java.go | 1 |
2 files changed, 21 insertions, 23 deletions
diff --git a/java/app.go b/java/app.go index 3dfdfdc07..406894dca 100755 --- a/java/app.go +++ b/java/app.go @@ -1915,11 +1915,11 @@ func (u *usesLibrary) deps(ctx android.BottomUpMutatorContext, hasFrameworkLibs if hasFrameworkLibs { // Dexpreopt needs paths to the dex jars of these libraries in order to construct // class loader context for dex2oat. Add them as a dependency with a special tag. - ctx.AddVariationDependencies(nil, usesLibTag, + ctx.AddVariationDependencies(nil, usesLibCompatTag, "org.apache.http.legacy", "android.hidl.base-V1.0-java", "android.hidl.manager-V1.0-java") - ctx.AddVariationDependencies(nil, usesLibTag, optionalUsesLibs...) + ctx.AddVariationDependencies(nil, usesLibCompatTag, optionalUsesLibs...) } } } @@ -1937,30 +1937,27 @@ func (u *usesLibrary) usesLibraryPaths(ctx android.ModuleContext) dexpreopt.Libr usesLibPaths := make(dexpreopt.LibraryPaths) if !ctx.Config().UnbundledBuild() { - ctx.VisitDirectDepsWithTag(usesLibTag, func(m android.Module) { - dep := ctx.OtherModuleName(m) - if lib, ok := m.(Dependency); ok { - 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 - } + ctx.VisitDirectDeps(func(m android.Module) { + tag := ctx.OtherModuleDependencyTag(m) + if tag == usesLibTag || tag == usesLibCompatTag { + dep := ctx.OtherModuleName(m) + + if lib, ok := m.(Dependency); ok { + buildPath := lib.DexJarBuildPath() + installPath := lib.DexJarInstallPath() + if installPath == nil && tag == usesLibCompatTag { + // assume that compatibility libraries are in /system/framework + installPath = android.PathForModuleInstall(ctx, "framework", dep+".jar") + } + usesLibPaths.AddLibraryPath(ctx, dep, buildPath, installPath) + + } else if ctx.Config().AllowMissingDependencies() { + ctx.AddMissingDependencies([]string{dep}) - var devicePath string - installPath := lib.DexJarInstallPath() - if installPath == nil { - devicePath = filepath.Join("/system/framework", dep+".jar") } else { - devicePath = android.InstallPathToOnDevicePath(ctx, installPath.(android.InstallPath)) + ctx.ModuleErrorf("module %q in uses_libs or optional_uses_libs must be "+ + "a java library", dep) } - - usesLibPaths[dep] = &dexpreopt.LibraryPath{buildPath, devicePath} - } else if ctx.Config().AllowMissingDependencies() { - ctx.AddMissingDependencies([]string{dep}) - } else { - ctx.ModuleErrorf("module %q in uses_libs or optional_uses_libs must be "+ - "a java library", dep) } }) } diff --git a/java/java.go b/java/java.go index 06904182c..c568ec43d 100644 --- a/java/java.go +++ b/java/java.go @@ -566,6 +566,7 @@ var ( certificateTag = dependencyTag{name: "certificate"} instrumentationForTag = dependencyTag{name: "instrumentation_for"} usesLibTag = dependencyTag{name: "uses-library"} + usesLibCompatTag = dependencyTag{name: "uses-library-compat"} extraLintCheckTag = dependencyTag{name: "extra-lint-check"} ) |