Loading android/module.go +3 −1 Original line number Diff line number Diff line Loading @@ -2491,6 +2491,8 @@ func outputFilesForModule(ctx PathContext, module blueprint.Module, tag string) if outputFilesFromProvider != nil || err != OutputFilesProviderNotSet { return outputFilesFromProvider, err } // TODO: add error when outputFilesFromProvider and err are both nil after // OutputFileProducer and SourceFileProducer are deprecated. if outputFileProducer, ok := module.(OutputFileProducer); ok { paths, err := outputFileProducer.OutputFiles(tag) if err != nil { Loading @@ -2505,7 +2507,7 @@ func outputFilesForModule(ctx PathContext, module blueprint.Module, tag string) paths := sourceFileProducer.Srcs() return paths, nil } else { return nil, fmt.Errorf("module %q is not an OutputFileProducer or SourceFileProducer", pathContextName(ctx, module)) return nil, fmt.Errorf("module %q is not an SourceFileProducer or having valid output file for tag %q", pathContextName(ctx, module), tag) } } Loading java/aar.go +7 −12 Original line number Diff line number Diff line Loading @@ -798,18 +798,6 @@ type AndroidLibrary struct { aarFile android.WritablePath } var _ android.OutputFileProducer = (*AndroidLibrary)(nil) // For OutputFileProducer interface func (a *AndroidLibrary) OutputFiles(tag string) (android.Paths, error) { switch tag { case ".aar": return []android.Path{a.aarFile}, nil default: return a.Library.OutputFiles(tag) } } var _ AndroidLibraryDependency = (*AndroidLibrary)(nil) func (a *AndroidLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { Loading Loading @@ -911,6 +899,13 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) android.SetProvider(ctx, FlagsPackagesProvider, FlagsPackages{ AconfigTextFiles: aconfigTextFilePaths, }) a.setOutputFiles(ctx) } func (a *AndroidLibrary) setOutputFiles(ctx android.ModuleContext) { ctx.SetOutputFiles([]android.Path{a.aarFile}, ".aar") setOutputFiles(ctx, a.Library.Module) } func (a *AndroidLibrary) IDEInfo(dpInfo *android.IdeInfo) { Loading java/aar_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -159,19 +159,19 @@ func TestAndroidLibraryOutputFilesRel(t *testing.T) { bar := result.ModuleForTests("bar", "android_common") baz := result.ModuleForTests("baz", "android_common") fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "") fooOutputPaths := foo.OutputFiles(t, "") 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.AssertPathsRelativeToTopEquals(t, "foo output path", []string{"out/soong/.intermediates/foo/android_common/withres/foo.jar"}, fooOutputPaths) 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()) "foo.jar", fooOutputPaths[0].Rel()) android.AssertStringEquals(t, "bar relative output path", "bar.jar", barOutputPaths[0].Rel()) android.AssertStringEquals(t, "baz relative output path", Loading java/app.go +16 −25 Original line number Diff line number Diff line Loading @@ -1017,6 +1017,22 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { isPrebuilt: false, }, ) a.setOutputFiles(ctx) } func (a *AndroidApp) setOutputFiles(ctx android.ModuleContext) { ctx.SetOutputFiles([]android.Path{a.proguardOptionsFile}, ".aapt.proguardOptionsFile") if a.aaptSrcJar != nil { ctx.SetOutputFiles([]android.Path{a.aaptSrcJar}, ".aapt.srcjar") } if a.rJar != nil { ctx.SetOutputFiles([]android.Path{a.rJar}, ".aapt.jar") } ctx.SetOutputFiles([]android.Path{a.outputFile}, ".apk") ctx.SetOutputFiles([]android.Path{a.exportPackage}, ".export-package.apk") ctx.SetOutputFiles([]android.Path{a.aapt.manifestPath}, ".manifest.xml") setOutputFiles(ctx, a.Library.Module) } type appDepsInterface interface { Loading Loading @@ -1207,31 +1223,6 @@ func (a *AndroidApp) DepIsInSameApex(ctx android.BaseModuleContext, dep android. return a.Library.DepIsInSameApex(ctx, dep) } // For OutputFileProducer interface func (a *AndroidApp) OutputFiles(tag string) (android.Paths, error) { switch tag { // In some instances, it can be useful to reference the aapt-generated flags from another // target, e.g., system server implements services declared in the framework-res manifest. case ".aapt.proguardOptionsFile": return []android.Path{a.proguardOptionsFile}, nil case ".aapt.srcjar": if a.aaptSrcJar != nil { return []android.Path{a.aaptSrcJar}, nil } case ".aapt.jar": if a.rJar != nil { return []android.Path{a.rJar}, nil } case ".apk": return []android.Path{a.outputFile}, nil case ".export-package.apk": return []android.Path{a.exportPackage}, nil case ".manifest.xml": return []android.Path{a.aapt.manifestPath}, nil } return a.Library.OutputFiles(tag) } func (a *AndroidApp) Privileged() bool { return Bool(a.appProperties.Privileged) } Loading java/app_test.go +1 −4 Original line number Diff line number Diff line Loading @@ -119,10 +119,7 @@ func TestAppSplits(t *testing.T) { foo.Output(expectedOutput) } outputFiles, err := foo.Module().(*AndroidApp).OutputFiles("") if err != nil { t.Fatal(err) } outputFiles := foo.OutputFiles(t, "") android.AssertPathsRelativeToTopEquals(t, `OutputFiles("")`, expectedOutputs, outputFiles) } Loading Loading
android/module.go +3 −1 Original line number Diff line number Diff line Loading @@ -2491,6 +2491,8 @@ func outputFilesForModule(ctx PathContext, module blueprint.Module, tag string) if outputFilesFromProvider != nil || err != OutputFilesProviderNotSet { return outputFilesFromProvider, err } // TODO: add error when outputFilesFromProvider and err are both nil after // OutputFileProducer and SourceFileProducer are deprecated. if outputFileProducer, ok := module.(OutputFileProducer); ok { paths, err := outputFileProducer.OutputFiles(tag) if err != nil { Loading @@ -2505,7 +2507,7 @@ func outputFilesForModule(ctx PathContext, module blueprint.Module, tag string) paths := sourceFileProducer.Srcs() return paths, nil } else { return nil, fmt.Errorf("module %q is not an OutputFileProducer or SourceFileProducer", pathContextName(ctx, module)) return nil, fmt.Errorf("module %q is not an SourceFileProducer or having valid output file for tag %q", pathContextName(ctx, module), tag) } } Loading
java/aar.go +7 −12 Original line number Diff line number Diff line Loading @@ -798,18 +798,6 @@ type AndroidLibrary struct { aarFile android.WritablePath } var _ android.OutputFileProducer = (*AndroidLibrary)(nil) // For OutputFileProducer interface func (a *AndroidLibrary) OutputFiles(tag string) (android.Paths, error) { switch tag { case ".aar": return []android.Path{a.aarFile}, nil default: return a.Library.OutputFiles(tag) } } var _ AndroidLibraryDependency = (*AndroidLibrary)(nil) func (a *AndroidLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { Loading Loading @@ -911,6 +899,13 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) android.SetProvider(ctx, FlagsPackagesProvider, FlagsPackages{ AconfigTextFiles: aconfigTextFilePaths, }) a.setOutputFiles(ctx) } func (a *AndroidLibrary) setOutputFiles(ctx android.ModuleContext) { ctx.SetOutputFiles([]android.Path{a.aarFile}, ".aar") setOutputFiles(ctx, a.Library.Module) } func (a *AndroidLibrary) IDEInfo(dpInfo *android.IdeInfo) { Loading
java/aar_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -159,19 +159,19 @@ func TestAndroidLibraryOutputFilesRel(t *testing.T) { bar := result.ModuleForTests("bar", "android_common") baz := result.ModuleForTests("baz", "android_common") fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "") fooOutputPaths := foo.OutputFiles(t, "") 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.AssertPathsRelativeToTopEquals(t, "foo output path", []string{"out/soong/.intermediates/foo/android_common/withres/foo.jar"}, fooOutputPaths) 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()) "foo.jar", fooOutputPaths[0].Rel()) android.AssertStringEquals(t, "bar relative output path", "bar.jar", barOutputPaths[0].Rel()) android.AssertStringEquals(t, "baz relative output path", Loading
java/app.go +16 −25 Original line number Diff line number Diff line Loading @@ -1017,6 +1017,22 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { isPrebuilt: false, }, ) a.setOutputFiles(ctx) } func (a *AndroidApp) setOutputFiles(ctx android.ModuleContext) { ctx.SetOutputFiles([]android.Path{a.proguardOptionsFile}, ".aapt.proguardOptionsFile") if a.aaptSrcJar != nil { ctx.SetOutputFiles([]android.Path{a.aaptSrcJar}, ".aapt.srcjar") } if a.rJar != nil { ctx.SetOutputFiles([]android.Path{a.rJar}, ".aapt.jar") } ctx.SetOutputFiles([]android.Path{a.outputFile}, ".apk") ctx.SetOutputFiles([]android.Path{a.exportPackage}, ".export-package.apk") ctx.SetOutputFiles([]android.Path{a.aapt.manifestPath}, ".manifest.xml") setOutputFiles(ctx, a.Library.Module) } type appDepsInterface interface { Loading Loading @@ -1207,31 +1223,6 @@ func (a *AndroidApp) DepIsInSameApex(ctx android.BaseModuleContext, dep android. return a.Library.DepIsInSameApex(ctx, dep) } // For OutputFileProducer interface func (a *AndroidApp) OutputFiles(tag string) (android.Paths, error) { switch tag { // In some instances, it can be useful to reference the aapt-generated flags from another // target, e.g., system server implements services declared in the framework-res manifest. case ".aapt.proguardOptionsFile": return []android.Path{a.proguardOptionsFile}, nil case ".aapt.srcjar": if a.aaptSrcJar != nil { return []android.Path{a.aaptSrcJar}, nil } case ".aapt.jar": if a.rJar != nil { return []android.Path{a.rJar}, nil } case ".apk": return []android.Path{a.outputFile}, nil case ".export-package.apk": return []android.Path{a.exportPackage}, nil case ".manifest.xml": return []android.Path{a.aapt.manifestPath}, nil } return a.Library.OutputFiles(tag) } func (a *AndroidApp) Privileged() bool { return Bool(a.appProperties.Privileged) } Loading
java/app_test.go +1 −4 Original line number Diff line number Diff line Loading @@ -119,10 +119,7 @@ func TestAppSplits(t *testing.T) { foo.Output(expectedOutput) } outputFiles, err := foo.Module().(*AndroidApp).OutputFiles("") if err != nil { t.Fatal(err) } outputFiles := foo.OutputFiles(t, "") android.AssertPathsRelativeToTopEquals(t, `OutputFiles("")`, expectedOutputs, outputFiles) } Loading