Don't pass static libs to r8
r8 gets the static libs in the program jar, it shouldn't also get them as library jars. Keep a separate classpath for dexing that includes libs but not static_libs. Bug: 222468116 Test: m checkbuild Test: TestD8 Test: TestR8 Change-Id: Icca3393f496cbcadcc633f3b156761e6c145f975
This commit is contained in:
12
java/base.go
12
java/base.go
@@ -872,6 +872,7 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB
|
||||
// classpath
|
||||
flags.bootClasspath = append(flags.bootClasspath, deps.bootClasspath...)
|
||||
flags.classpath = append(flags.classpath, deps.classpath...)
|
||||
flags.dexClasspath = append(flags.dexClasspath, deps.dexClasspath...)
|
||||
flags.java9Classpath = append(flags.java9Classpath, deps.java9Classpath...)
|
||||
flags.processorPath = append(flags.processorPath, deps.processorPath...)
|
||||
flags.errorProneProcessorPath = append(flags.errorProneProcessorPath, deps.errorProneProcessorPath...)
|
||||
@@ -1090,6 +1091,8 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
||||
flags.classpath = append(flags.classpath, deps.kotlinStdlib...)
|
||||
flags.classpath = append(flags.classpath, deps.kotlinAnnotations...)
|
||||
|
||||
flags.dexClasspath = append(flags.dexClasspath, deps.kotlinAnnotations...)
|
||||
|
||||
flags.kotlincClasspath = append(flags.kotlincClasspath, flags.bootClasspath...)
|
||||
flags.kotlincClasspath = append(flags.kotlincClasspath, flags.classpath...)
|
||||
|
||||
@@ -1118,6 +1121,8 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
||||
// Jar kotlin classes into the final jar after javac
|
||||
if BoolDefault(j.properties.Static_kotlin_stdlib, true) {
|
||||
kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
|
||||
} else {
|
||||
flags.dexClasspath = append(flags.dexClasspath, deps.kotlinStdlib...)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1842,6 +1847,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
} else if sdkDep.useFiles {
|
||||
// sdkDep.jar is actually equivalent to turbine header.jar.
|
||||
deps.classpath = append(deps.classpath, sdkDep.jars...)
|
||||
deps.dexClasspath = append(deps.dexClasspath, sdkDep.jars...)
|
||||
deps.aidlPreprocess = sdkDep.aidl
|
||||
} else {
|
||||
deps.aidlPreprocess = sdkDep.aidl
|
||||
@@ -1866,7 +1872,9 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
if dep, ok := module.(SdkLibraryDependency); ok {
|
||||
switch tag {
|
||||
case libTag:
|
||||
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
||||
depHeaderJars := dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))
|
||||
deps.classpath = append(deps.classpath, depHeaderJars...)
|
||||
deps.dexClasspath = append(deps.dexClasspath, depHeaderJars...)
|
||||
case staticLibTag:
|
||||
ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
|
||||
}
|
||||
@@ -1885,6 +1893,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
deps.bootClasspath = append(deps.bootClasspath, dep.HeaderJars...)
|
||||
case libTag, instrumentationForTag:
|
||||
deps.classpath = append(deps.classpath, dep.HeaderJars...)
|
||||
deps.dexClasspath = append(deps.dexClasspath, dep.HeaderJars...)
|
||||
deps.aidlIncludeDirs = append(deps.aidlIncludeDirs, dep.AidlIncludeDirs...)
|
||||
addPlugins(&deps, dep.ExportedPlugins, dep.ExportedPluginClasses...)
|
||||
deps.disableTurbine = deps.disableTurbine || dep.ExportedPluginDisableTurbine
|
||||
@@ -1952,6 +1961,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
case libTag:
|
||||
checkProducesJars(ctx, dep)
|
||||
deps.classpath = append(deps.classpath, dep.Srcs()...)
|
||||
deps.dexClasspath = append(deps.classpath, dep.Srcs()...)
|
||||
case staticLibTag:
|
||||
checkProducesJars(ctx, dep)
|
||||
deps.classpath = append(deps.classpath, dep.Srcs()...)
|
||||
|
Reference in New Issue
Block a user