aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2024-03-22 18:16:57 +0000
committerColin Cross <ccross@android.com>2024-03-22 18:16:57 +0000
commit44841aada36a7098182fe719d352a4c6801e496e (patch)
tree4b46fc870e843f482a2e88851cc0c6b82942e261
parentc6c9c7354bb9c8b8e69f21141e79d682bbe51076 (diff)
downloadsoong-44841aada36a7098182fe719d352a4c6801e496e.tar.gz
Revert "Support transitive dependencies through android_libary_i..."
Revert submission 3008874 Reason for revert: b/330903911 Reverted changes: /q/submissionid:3008874 Change-Id: Ie056a7f90803ab2d8e39e07eddf6c9c68e41ff3d
-rw-r--r--java/aar.go90
-rw-r--r--java/android_manifest_test.go5
-rw-r--r--java/androidmk.go6
-rw-r--r--java/app_test.go36
4 files changed, 52 insertions, 85 deletions
diff --git a/java/aar.go b/java/aar.go
index b3275316e..283579280 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -386,6 +386,11 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio
// Add additional manifest files to transitive manifests.
additionalManifests := android.PathsForModuleSrc(ctx, a.aaptProperties.Additional_manifests)
transitiveManifestPaths := append(android.Paths{manifestPath}, additionalManifests...)
+ // TODO(b/288358614): Soong has historically not merged manifests from dependencies of android_library_import
+ // modules. Merging manifests from dependencies could remove the need for pom2bp to generate the "-nodeps" copies
+ // of androidx libraries, but doing so triggers errors due to errors introduced by existing dependencies of
+ // android_library_import modules. If this is fixed, staticManifestsDepSet can be dropped completely in favor of
+ // staticResourcesNodesDepSet.manifests()
transitiveManifestPaths = append(transitiveManifestPaths, staticManifestsDepSet.ToList()...)
if len(transitiveManifestPaths) > 1 && !Bool(a.aaptProperties.Dont_merge_manifests) {
@@ -752,8 +757,7 @@ func aaptLibs(ctx android.ModuleContext, sdkContext android.SdkContext, classLoa
// reverse later.
// NOTE: this is legacy and probably incorrect behavior, for most other cases (e.g. conflicting classes in
// dependencies) the highest priority dependency is listed first, but for resources the highest priority
- // dependency has to be listed last. This is also inconsistent with the way manifests from the same
- // transitive dependencies are merged.
+ // dependency has to be listed last.
staticResourcesNodes = android.NewDepSet(android.TOPOLOGICAL, nil,
android.ReverseSliceInPlace(staticResourcesNodeDepSets))
sharedResourcesNodes = android.NewDepSet(android.TOPOLOGICAL, nil,
@@ -968,8 +972,7 @@ type AARImport struct {
properties AARImportProperties
- headerJarFile android.WritablePath
- implementationJarFile android.WritablePath
+ classpathFile android.WritablePath
proguardFlags android.WritablePath
exportPackage android.WritablePath
transitiveAaptResourcePackagesFile android.Path
@@ -990,9 +993,6 @@ type AARImport struct {
sdkVersion android.SdkSpec
minSdkVersion android.ApiLevel
- usesLibrary
- classLoaderContexts dexpreopt.ClassLoaderContextMap
-
// Single aconfig "cache file" merged from this module and all dependencies.
mergedAconfigFiles map[string]android.Paths
}
@@ -1005,7 +1005,7 @@ func (a *AARImport) OutputFiles(tag string) (android.Paths, error) {
case ".aar":
return []android.Path{a.aarPath}, nil
case "":
- return []android.Path{a.implementationJarFile}, nil
+ return []android.Path{a.classpathFile}, nil
default:
return nil, fmt.Errorf("unsupported module reference tag %q", tag)
}
@@ -1088,8 +1088,6 @@ func (a *AARImport) DepsMutator(ctx android.BottomUpMutatorContext) {
ctx.AddVariationDependencies(nil, libTag, a.properties.Libs...)
ctx.AddVariationDependencies(nil, staticLibTag, a.properties.Static_libs...)
-
- a.usesLibrary.deps(ctx, false)
}
type JniPackageInfo struct {
@@ -1148,7 +1146,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
}
extractedAARDir := android.PathForModuleOut(ctx, "aar")
- classpathFile := extractedAARDir.Join(ctx, "classes-combined.jar")
+ a.classpathFile = extractedAARDir.Join(ctx, "classes-combined.jar")
a.manifest = extractedAARDir.Join(ctx, "AndroidManifest.xml")
a.rTxt = extractedAARDir.Join(ctx, "R.txt")
a.assetsPackage = android.PathForModuleOut(ctx, "assets.zip")
@@ -1164,11 +1162,11 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
ctx.Build(pctx, android.BuildParams{
Rule: unzipAAR,
Input: a.aarPath,
- Outputs: android.WritablePaths{classpathFile, a.proguardFlags, a.manifest, a.assetsPackage, a.rTxt},
+ Outputs: android.WritablePaths{a.classpathFile, a.proguardFlags, a.manifest, a.assetsPackage, a.rTxt},
Description: "unzip AAR",
Args: map[string]string{
"outDir": extractedAARDir.String(),
- "combinedClassesJar": classpathFile.String(),
+ "combinedClassesJar": a.classpathFile.String(),
"assetsPackage": a.assetsPackage.String(),
},
})
@@ -1241,7 +1239,13 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.resourcesNodesDepSet = resourcesNodesDepSetBuilder.Build()
manifestDepSetBuilder := android.NewDepSetBuilder[android.Path](android.TOPOLOGICAL).Direct(a.manifest)
- manifestDepSetBuilder.Transitive(staticManifestsDepSet)
+ // TODO(b/288358614): Soong has historically not merged manifests from dependencies of android_library_import
+ // modules. Merging manifests from dependencies could remove the need for pom2bp to generate the "-nodeps" copies
+ // of androidx libraries, but doing so triggers errors due to errors introduced by existing dependencies of
+ // android_library_import modules. If this is fixed, AndroidLibraryDependency.ManifestsDepSet can be dropped
+ // completely in favor of AndroidLibraryDependency.ResourceNodesDepSet.manifest
+ //manifestDepSetBuilder.Transitive(transitiveStaticDeps.manifests)
+ _ = staticManifestsDepSet
a.manifestsDepSet = manifestDepSetBuilder.Build()
transitiveAaptResourcePackages := staticDeps.resPackages().Strings()
@@ -1253,45 +1257,12 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile
a.collectTransitiveHeaderJars(ctx)
-
- a.classLoaderContexts = a.usesLibrary.classLoaderContextForUsesLibDeps(ctx)
-
- var staticJars android.Paths
- var staticHeaderJars android.Paths
- ctx.VisitDirectDeps(func(module android.Module) {
- if dep, ok := android.OtherModuleProvider(ctx, module, JavaInfoProvider); ok {
- tag := ctx.OtherModuleDependencyTag(module)
- switch tag {
- case staticLibTag:
- staticJars = append(staticJars, dep.ImplementationJars...)
- staticHeaderJars = append(staticHeaderJars, dep.HeaderJars...)
- }
- }
- addCLCFromDep(ctx, module, a.classLoaderContexts)
- })
-
- if len(staticJars) > 0 {
- combineJars := append(android.Paths{classpathFile}, staticJars...)
- a.implementationJarFile = android.PathForModuleOut(ctx, "combined", ctx.ModuleName()+".jar")
- TransformJarsToJar(ctx, a.implementationJarFile, "combine", combineJars, android.OptionalPath{}, false, nil, nil)
- } else {
- a.implementationJarFile = classpathFile
- }
-
- if len(staticHeaderJars) > 0 {
- combineJars := append(android.Paths{classpathFile}, staticHeaderJars...)
- a.headerJarFile = android.PathForModuleOut(ctx, "turbine-combined", ctx.ModuleName()+".jar")
- TransformJarsToJar(ctx, a.headerJarFile, "combine header jars", combineJars, android.OptionalPath{}, false, nil, nil)
- } else {
- a.headerJarFile = classpathFile
- }
-
android.SetProvider(ctx, JavaInfoProvider, JavaInfo{
- HeaderJars: android.PathsIfNonNil(a.headerJarFile),
+ HeaderJars: android.PathsIfNonNil(a.classpathFile),
TransitiveLibsHeaderJars: a.transitiveLibsHeaderJars,
TransitiveStaticLibsHeaderJars: a.transitiveStaticLibsHeaderJars,
- ImplementationAndResourcesJars: android.PathsIfNonNil(a.implementationJarFile),
- ImplementationJars: android.PathsIfNonNil(a.implementationJarFile),
+ ImplementationAndResourcesJars: android.PathsIfNonNil(a.classpathFile),
+ ImplementationJars: android.PathsIfNonNil(a.classpathFile),
StubsLinkType: Implementation,
// TransitiveAconfigFiles: // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts
})
@@ -1324,15 +1295,15 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
}
func (a *AARImport) HeaderJars() android.Paths {
- return android.Paths{a.headerJarFile}
+ return android.Paths{a.classpathFile}
}
func (a *AARImport) ImplementationAndResourcesJars() android.Paths {
- return android.Paths{a.implementationJarFile}
+ return android.Paths{a.classpathFile}
}
-func (a *AARImport) DexJarBuildPath(ctx android.ModuleErrorfContext) OptionalDexJarPath {
- return OptionalDexJarPath{}
+func (a *AARImport) DexJarBuildPath(ctx android.ModuleErrorfContext) android.Path {
+ return nil
}
func (a *AARImport) DexJarInstallPath() android.Path {
@@ -1340,11 +1311,9 @@ func (a *AARImport) DexJarInstallPath() android.Path {
}
func (a *AARImport) ClassLoaderContexts() dexpreopt.ClassLoaderContextMap {
- return a.classLoaderContexts
+ return nil
}
-var _ UsesLibraryDependency = (*AARImport)(nil)
-
var _ android.ApexModule = (*AARImport)(nil)
// Implements android.ApexModule
@@ -1353,7 +1322,7 @@ func (a *AARImport) DepIsInSameApex(ctx android.BaseModuleContext, dep android.M
}
// Implements android.ApexModule
-func (a *AARImport) ShouldSupportSdkVersion(ctx android.BaseModuleContext,
+func (g *AARImport) ShouldSupportSdkVersion(ctx android.BaseModuleContext,
sdkVersion android.ApiLevel) error {
return nil
}
@@ -1367,10 +1336,7 @@ var _ android.PrebuiltInterface = (*AARImport)(nil)
func AARImportFactory() android.Module {
module := &AARImport{}
- module.AddProperties(
- &module.properties,
- &module.usesLibrary.usesLibraryProperties,
- )
+ module.AddProperties(&module.properties)
android.InitPrebuiltModule(module, &module.properties.Aars)
android.InitApexModule(module)
diff --git a/java/android_manifest_test.go b/java/android_manifest_test.go
index 7c9188462..5909b1e6a 100644
--- a/java/android_manifest_test.go
+++ b/java/android_manifest_test.go
@@ -92,9 +92,10 @@ func TestManifestMerger(t *testing.T) {
"out/soong/.intermediates/transitive/android_common/manifest_fixer/AndroidManifest.xml",
"transitive/AndroidManifest2.xml",
"out/soong/.intermediates/transitive_import/android_common/aar/AndroidManifest.xml",
- "out/soong/.intermediates/transitive_import_dep/android_common/aar/AndroidManifest.xml",
"out/soong/.intermediates/direct_import/android_common/aar/AndroidManifest.xml",
- "out/soong/.intermediates/direct_import_dep/android_common/aar/AndroidManifest.xml",
+ // TODO(b/288358614): Soong has historically not merged manifests from dependencies of
+ // android_library_import modules.
+
},
manifestMergerRule.Implicits)
}
diff --git a/java/androidmk.go b/java/androidmk.go
index e1b4efd7a..498962f88 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -262,13 +262,13 @@ func (prebuilt *AARImport) AndroidMkEntries() []android.AndroidMkEntries {
}
return []android.AndroidMkEntries{android.AndroidMkEntries{
Class: "JAVA_LIBRARIES",
- OutputFile: android.OptionalPathForPath(prebuilt.implementationJarFile),
+ OutputFile: android.OptionalPathForPath(prebuilt.classpathFile),
Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk",
ExtraEntries: []android.AndroidMkExtraEntriesFunc{
func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", true)
- entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.headerJarFile)
- entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.implementationJarFile)
+ entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.classpathFile)
+ entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.classpathFile)
entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", prebuilt.exportPackage)
entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackagesFile)
entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", prebuilt.proguardFlags)
diff --git a/java/app_test.go b/java/app_test.go
index ca9d31704..b75cb1678 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -829,12 +829,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
"out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar",
"out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
appCombined: []string{
"out/soong/.intermediates/app/android_common/javac/app.jar",
"out/soong/.intermediates/direct/android_common/combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
directResources: nil,
@@ -849,12 +849,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
directClasspath: []string{
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
"out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
directCombined: []string{
"out/soong/.intermediates/direct/android_common/javac/direct.jar",
"out/soong/.intermediates/transitive/android_common/javac/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"},
@@ -928,13 +928,13 @@ func TestAndroidResourceProcessor(t *testing.T) {
"out/soong/.intermediates/app/android_common/busybox/R.jar",
"out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar",
"out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
appCombined: []string{
"out/soong/.intermediates/app/android_common/javac/app.jar",
"out/soong/.intermediates/app/android_common/busybox/R.jar",
"out/soong/.intermediates/direct/android_common/combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
directResources: nil,
@@ -953,12 +953,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
"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/turbine-combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
directCombined: []string{
"out/soong/.intermediates/direct/android_common/javac/direct.jar",
"out/soong/.intermediates/transitive/android_common/javac/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"},
@@ -1034,13 +1034,13 @@ func TestAndroidResourceProcessor(t *testing.T) {
"out/soong/.intermediates/app/android_common/busybox/R.jar",
"out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar",
"out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
appCombined: []string{
"out/soong/.intermediates/app/android_common/javac/app.jar",
"out/soong/.intermediates/app/android_common/busybox/R.jar",
"out/soong/.intermediates/direct/android_common/combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
dontVerifyDirect: true,
@@ -1075,12 +1075,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
"out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar",
"out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
appCombined: []string{
"out/soong/.intermediates/app/android_common/javac/app.jar",
"out/soong/.intermediates/direct/android_common/combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
directResources: nil,
@@ -1098,12 +1098,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
"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/turbine-combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
directCombined: []string{
"out/soong/.intermediates/direct/android_common/javac/direct.jar",
"out/soong/.intermediates/transitive/android_common/javac/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
dontVerifyTransitive: true,
@@ -1137,12 +1137,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
"out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar",
"out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
appCombined: []string{
"out/soong/.intermediates/app/android_common/javac/app.jar",
"out/soong/.intermediates/direct/android_common/combined/direct.jar",
- "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar",
+ "out/soong/.intermediates/direct_import/android_common/aar/classes-combined.jar",
},
directResources: nil,
@@ -1157,12 +1157,12 @@ func TestAndroidResourceProcessor(t *testing.T) {
directClasspath: []string{
"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar",
"out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
directCombined: []string{
"out/soong/.intermediates/direct/android_common/javac/direct.jar",
"out/soong/.intermediates/transitive/android_common/javac/transitive.jar",
- "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar",
+ "out/soong/.intermediates/transitive_import/android_common/aar/classes-combined.jar",
},
transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"},