diff --git a/java/aar.go b/java/aar.go index 3168d9bf4..4aae62a45 100644 --- a/java/aar.go +++ b/java/aar.go @@ -1021,20 +1021,6 @@ type AARImport struct { classLoaderContexts dexpreopt.ClassLoaderContextMap } -var _ android.OutputFileProducer = (*AARImport)(nil) - -// For OutputFileProducer interface -func (a *AARImport) OutputFiles(tag string) (android.Paths, error) { - switch tag { - case ".aar": - return []android.Path{a.aarPath}, nil - case "": - return []android.Path{a.implementationAndResourcesJarFile}, nil - default: - return nil, fmt.Errorf("unsupported module reference tag %q", tag) - } -} - func (a *AARImport) SdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return android.SdkSpecFrom(ctx, String(a.properties.Sdk_version)) } @@ -1388,6 +1374,9 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { android.SetProvider(ctx, JniPackageProvider, JniPackageInfo{ JniPackages: a.jniPackages, }) + + ctx.SetOutputFiles([]android.Path{a.implementationAndResourcesJarFile}, "") + ctx.SetOutputFiles([]android.Path{a.aarPath}, ".aar") } func (a *AARImport) HeaderJars() android.Paths { diff --git a/java/aar_test.go b/java/aar_test.go index 18efd2067..1ab1f9c90 100644 --- a/java/aar_test.go +++ b/java/aar_test.go @@ -160,20 +160,20 @@ func TestAndroidLibraryOutputFilesRel(t *testing.T) { 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(), "") + barOutputPaths := bar.OutputFiles(t, "") + bazOutputPaths := baz.OutputFiles(t, "") android.AssertPathRelativeToTopEquals(t, "foo output path", "out/soong/.intermediates/foo/android_common/withres/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/withres/baz.jar", bazOutputPath) + android.AssertPathsRelativeToTopEquals(t, "bar output path", + []string{"out/soong/.intermediates/bar/android_common/aar/bar.jar"}, barOutputPaths) + android.AssertPathsRelativeToTopEquals(t, "baz output path", + []string{"out/soong/.intermediates/baz/android_common/withres/baz.jar"}, bazOutputPaths) android.AssertStringEquals(t, "foo relative output path", "foo.jar", fooOutputPath.Rel()) android.AssertStringEquals(t, "bar relative output path", - "bar.jar", barOutputPath.Rel()) + "bar.jar", barOutputPaths[0].Rel()) android.AssertStringEquals(t, "baz relative output path", - "baz.jar", bazOutputPath.Rel()) + "baz.jar", bazOutputPaths[0].Rel()) } diff --git a/java/app_import.go b/java/app_import.go index dc8470da7..fa87997cf 100644 --- a/java/app_import.go +++ b/java/app_import.go @@ -17,7 +17,6 @@ package java // This file contains the module implementations for android_app_import and android_test_import. import ( - "fmt" "reflect" "strings" @@ -422,6 +421,8 @@ func (a *AndroidAppImport) generateAndroidBuildActions(ctx android.ModuleContext }, ) + ctx.SetOutputFiles([]android.Path{a.outputFile}, "") + // TODO: androidmk converter jni libs } @@ -461,15 +462,6 @@ func (a *AndroidAppImport) OutputFile() android.Path { return a.outputFile } -func (a *AndroidAppImport) OutputFiles(tag string) (android.Paths, error) { - switch tag { - case "": - return []android.Path{a.outputFile}, nil - default: - return nil, fmt.Errorf("unsupported module reference tag %q", tag) - } -} - func (a *AndroidAppImport) JacocoReportClassesFile() android.Path { return nil } diff --git a/java/java.go b/java/java.go index a2fc5fbd1..e4abbcd28 100644 --- a/java/java.go +++ b/java/java.go @@ -2752,6 +2752,9 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { StubsLinkType: j.stubsLinkType, // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts }) + + ctx.SetOutputFiles(android.Paths{j.combinedImplementationFile}, "") + ctx.SetOutputFiles(android.Paths{j.combinedImplementationFile}, ".jar") } func (j *Import) maybeInstall(ctx android.ModuleContext, jarName string, outputFile android.Path) { @@ -2772,17 +2775,6 @@ func (j *Import) maybeInstall(ctx android.ModuleContext, jarName string, outputF ctx.InstallFile(installDir, jarName, outputFile) } -func (j *Import) OutputFiles(tag string) (android.Paths, error) { - switch tag { - case "", ".jar": - return android.Paths{j.combinedImplementationFile}, nil - default: - return nil, fmt.Errorf("unsupported module reference tag %q", tag) - } -} - -var _ android.OutputFileProducer = (*Import)(nil) - func (j *Import) HeaderJars() android.Paths { return android.PathsIfNonNil(j.combinedHeaderFile) } diff --git a/java/java_test.go b/java/java_test.go index 2f2793202..51c969e77 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -2994,22 +2994,22 @@ func TestJavaLibraryOutputFilesRel(t *testing.T) { 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(), "") + barOutputPaths := bar.OutputFiles(t, "") + bazOutputPaths := baz.OutputFiles(t, "") 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/combined/bar.jar", barOutputPath) - android.AssertPathRelativeToTopEquals(t, "baz output path", - "out/soong/.intermediates/baz/android_common/combined/baz.jar", bazOutputPath) + android.AssertPathsRelativeToTopEquals(t, "bar output path", + []string{"out/soong/.intermediates/bar/android_common/combined/bar.jar"}, barOutputPaths) + android.AssertPathsRelativeToTopEquals(t, "baz output path", + []string{"out/soong/.intermediates/baz/android_common/combined/baz.jar"}, bazOutputPaths) android.AssertStringEquals(t, "foo relative output path", "foo.jar", fooOutputPath.Rel()) android.AssertStringEquals(t, "bar relative output path", - "bar.jar", barOutputPath.Rel()) + "bar.jar", barOutputPaths[0].Rel()) android.AssertStringEquals(t, "baz relative output path", - "baz.jar", bazOutputPath.Rel()) + "baz.jar", bazOutputPaths[0].Rel()) } func assertTestOnlyAndTopLevel(t *testing.T, ctx *android.TestResult, expectedTestOnly []string, expectedTopLevel []string) {