Loading java/aar.go +8 −4 Original line number Diff line number Diff line Loading @@ -1156,7 +1156,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { } extractedAARDir := android.PathForModuleOut(ctx, "aar") classpathFile := extractedAARDir.Join(ctx, "classes-combined.jar") classpathFile := extractedAARDir.Join(ctx, ctx.ModuleName()+".jar") a.manifest = extractedAARDir.Join(ctx, "AndroidManifest.xml") a.rTxt = extractedAARDir.Join(ctx, "R.txt") a.assetsPackage = android.PathForModuleOut(ctx, "assets.zip") Loading Loading @@ -1284,14 +1284,18 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { addCLCFromDep(ctx, module, a.classLoaderContexts) }) var implementationJarFile android.OutputPath 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) implementationJarFile = android.PathForModuleOut(ctx, "combined", ctx.ModuleName()+".jar").OutputPath TransformJarsToJar(ctx, implementationJarFile, "combine", combineJars, android.OptionalPath{}, false, nil, nil) } else { a.implementationJarFile = classpathFile implementationJarFile = classpathFile } // Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource a.implementationJarFile = implementationJarFile.WithoutRel() if len(staticHeaderJars) > 0 { combineJars := append(android.Paths{classpathFile}, staticHeaderJars...) a.headerJarFile = android.PathForModuleOut(ctx, "turbine-combined", ctx.ModuleName()+".jar") Loading java/aar_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -128,3 +128,48 @@ func TestLibraryFlagsPackages(t *testing.T) { "--feature-flags @out/soong/.intermediates/bar/intermediate.txt --feature-flags @out/soong/.intermediates/baz/intermediate.txt", ) } func TestAndroidLibraryOutputFilesRel(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` android_library { name: "foo", srcs: ["a.java"], } android_library_import { name: "bar", aars: ["bar.aar"], } android_library_import { name: "baz", aars: ["baz.aar"], static_libs: ["bar"], } `) foo := result.ModuleForTests("foo", "android_common") bar := result.ModuleForTests("bar", "android_common") baz := result.ModuleForTests("baz", "android_common") fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "") barOutputPath := android.OutputFileForModule(android.PathContext(nil), bar.Module(), "") bazOutputPath := android.OutputFileForModule(android.PathContext(nil), baz.Module(), "") android.AssertPathRelativeToTopEquals(t, "foo output path", "out/soong/.intermediates/foo/android_common/javac/foo.jar", fooOutputPath) android.AssertPathRelativeToTopEquals(t, "bar output path", "out/soong/.intermediates/bar/android_common/aar/bar.jar", barOutputPath) android.AssertPathRelativeToTopEquals(t, "baz output path", "out/soong/.intermediates/baz/android_common/combined/baz.jar", bazOutputPath) android.AssertStringEquals(t, "foo relative output path", "foo.jar", fooOutputPath.Rel()) android.AssertStringEquals(t, "bar relative output path", "bar.jar", barOutputPath.Rel()) android.AssertStringEquals(t, "baz relative output path", "baz.jar", bazOutputPath.Rel()) } Loading
java/aar.go +8 −4 Original line number Diff line number Diff line Loading @@ -1156,7 +1156,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { } extractedAARDir := android.PathForModuleOut(ctx, "aar") classpathFile := extractedAARDir.Join(ctx, "classes-combined.jar") classpathFile := extractedAARDir.Join(ctx, ctx.ModuleName()+".jar") a.manifest = extractedAARDir.Join(ctx, "AndroidManifest.xml") a.rTxt = extractedAARDir.Join(ctx, "R.txt") a.assetsPackage = android.PathForModuleOut(ctx, "assets.zip") Loading Loading @@ -1284,14 +1284,18 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { addCLCFromDep(ctx, module, a.classLoaderContexts) }) var implementationJarFile android.OutputPath 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) implementationJarFile = android.PathForModuleOut(ctx, "combined", ctx.ModuleName()+".jar").OutputPath TransformJarsToJar(ctx, implementationJarFile, "combine", combineJars, android.OptionalPath{}, false, nil, nil) } else { a.implementationJarFile = classpathFile implementationJarFile = classpathFile } // Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource a.implementationJarFile = implementationJarFile.WithoutRel() if len(staticHeaderJars) > 0 { combineJars := append(android.Paths{classpathFile}, staticHeaderJars...) a.headerJarFile = android.PathForModuleOut(ctx, "turbine-combined", ctx.ModuleName()+".jar") Loading
java/aar_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -128,3 +128,48 @@ func TestLibraryFlagsPackages(t *testing.T) { "--feature-flags @out/soong/.intermediates/bar/intermediate.txt --feature-flags @out/soong/.intermediates/baz/intermediate.txt", ) } func TestAndroidLibraryOutputFilesRel(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` android_library { name: "foo", srcs: ["a.java"], } android_library_import { name: "bar", aars: ["bar.aar"], } android_library_import { name: "baz", aars: ["baz.aar"], static_libs: ["bar"], } `) foo := result.ModuleForTests("foo", "android_common") bar := result.ModuleForTests("bar", "android_common") baz := result.ModuleForTests("baz", "android_common") fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "") barOutputPath := android.OutputFileForModule(android.PathContext(nil), bar.Module(), "") bazOutputPath := android.OutputFileForModule(android.PathContext(nil), baz.Module(), "") android.AssertPathRelativeToTopEquals(t, "foo output path", "out/soong/.intermediates/foo/android_common/javac/foo.jar", fooOutputPath) android.AssertPathRelativeToTopEquals(t, "bar output path", "out/soong/.intermediates/bar/android_common/aar/bar.jar", barOutputPath) android.AssertPathRelativeToTopEquals(t, "baz output path", "out/soong/.intermediates/baz/android_common/combined/baz.jar", bazOutputPath) android.AssertStringEquals(t, "foo relative output path", "foo.jar", fooOutputPath.Rel()) android.AssertStringEquals(t, "bar relative output path", "bar.jar", barOutputPath.Rel()) android.AssertStringEquals(t, "baz relative output path", "baz.jar", bazOutputPath.Rel()) }