Use OutputFilesProvider on Import, AARImport and AndroidAppImport
In the context of incremental soong, the output files inter-module-communication will be through OutputFilesProvider. The OutputFileProducer interface will be deprecated. Test: CI Bug: 339477385 Change-Id: I51ccf59f97cb8a790642cb4463c479feaf18058a
This commit is contained in:
17
java/aar.go
17
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 {
|
||||
|
@@ -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())
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
14
java/java.go
14
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)
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user