Reverse order of transitive R.jar classpath entries
Reverse the order of transitive R.jar classpath entries so that the R.jar from the current module comes first, and so that R.jar from any direct dependency comes before the R.jar of any transitive dependencies through the direct dependency. Also swap the order of shared and static dependencies so that static dependencies come first in the final classpath. Bug: 294256649 Test: m javac-check Test: TestAndroidResourceProcessor Change-Id: Id9ea5b53ca563f79d0a25fb52b24552dbea70605
This commit is contained in:
14
java/aar.go
14
java/aar.go
@@ -453,6 +453,11 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio
|
||||
// as imports. The resources from dependencies will not be merged into this module's package-res.apk, and
|
||||
// instead modules depending on this module will reference package-res.apk from all transitive static
|
||||
// dependencies.
|
||||
for _, sharedDep := range sharedDeps {
|
||||
if sharedDep.usedResourceProcessor {
|
||||
transitiveRJars = append(transitiveRJars, sharedDep.rJar)
|
||||
}
|
||||
}
|
||||
for _, staticDep := range staticDeps {
|
||||
linkDeps = append(linkDeps, staticDep.resPackage)
|
||||
linkFlags = append(linkFlags, "-I "+staticDep.resPackage.String())
|
||||
@@ -460,11 +465,6 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio
|
||||
transitiveRJars = append(transitiveRJars, staticDep.rJar)
|
||||
}
|
||||
}
|
||||
for _, sharedDep := range sharedDeps {
|
||||
if sharedDep.usedResourceProcessor {
|
||||
transitiveRJars = append(transitiveRJars, sharedDep.rJar)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// When building an app or building a library without ResourceProcessorBusyBox enabled all static
|
||||
// dependencies are compiled into this module's package-res.apk as overlays.
|
||||
@@ -554,6 +554,10 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio
|
||||
transitiveAaptResourcePackagesFile := android.PathForModuleOut(ctx, "transitive-res-packages")
|
||||
android.WriteFileRule(ctx, transitiveAaptResourcePackagesFile, strings.Join(transitiveAaptResourcePackages, "\n"))
|
||||
|
||||
// Reverse the list of R.jar files so that the current module comes first, and direct dependencies come before
|
||||
// transitive dependencies.
|
||||
transitiveRJars = android.ReversePaths(transitiveRJars)
|
||||
|
||||
a.aaptSrcJar = srcJar
|
||||
a.transitiveAaptRJars = transitiveRJars
|
||||
a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile
|
||||
|
@@ -948,10 +948,10 @@ func TestAndroidResourceProcessor(t *testing.T) {
|
||||
directSrcJars: nil,
|
||||
directClasspath: []string{
|
||||
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/direct/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
|
||||
},
|
||||
@@ -981,9 +981,9 @@ func TestAndroidResourceProcessor(t *testing.T) {
|
||||
sharedSrcJars: nil,
|
||||
sharedClasspath: []string{
|
||||
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
|
||||
"out/soong/.intermediates/shared/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/shared_transitive_static/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/shared_transitive_shared/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/shared/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/shared_transitive_shared/android_common/turbine-combined/shared_transitive_shared.jar",
|
||||
"out/soong/.intermediates/shared_transitive_static/android_common/turbine-combined/shared_transitive_static.jar",
|
||||
},
|
||||
@@ -1094,9 +1094,9 @@ func TestAndroidResourceProcessor(t *testing.T) {
|
||||
directSrcJars: nil,
|
||||
directClasspath: []string{
|
||||
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/direct/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/busybox/R.jar",
|
||||
"out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar",
|
||||
"out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
|
||||
},
|
||||
|
Reference in New Issue
Block a user