diff options
author | Colin Cross <ccross@android.com> | 2024-03-22 18:16:57 +0000 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2024-03-22 18:16:57 +0000 |
commit | 44841aada36a7098182fe719d352a4c6801e496e (patch) | |
tree | 4b46fc870e843f482a2e88851cc0c6b82942e261 | |
parent | c6c9c7354bb9c8b8e69f21141e79d682bbe51076 (diff) | |
download | soong-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.go | 90 | ||||
-rw-r--r-- | java/android_manifest_test.go | 5 | ||||
-rw-r--r-- | java/androidmk.go | 6 | ||||
-rw-r--r-- | java/app_test.go | 36 |
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"}, |