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
|
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 {
|
func (a *AARImport) SdkVersion(ctx android.EarlyModuleContext) android.SdkSpec {
|
||||||
return android.SdkSpecFrom(ctx, String(a.properties.Sdk_version))
|
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{
|
android.SetProvider(ctx, JniPackageProvider, JniPackageInfo{
|
||||||
JniPackages: a.jniPackages,
|
JniPackages: a.jniPackages,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ctx.SetOutputFiles([]android.Path{a.implementationAndResourcesJarFile}, "")
|
||||||
|
ctx.SetOutputFiles([]android.Path{a.aarPath}, ".aar")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *AARImport) HeaderJars() android.Paths {
|
func (a *AARImport) HeaderJars() android.Paths {
|
||||||
|
@@ -160,20 +160,20 @@ func TestAndroidLibraryOutputFilesRel(t *testing.T) {
|
|||||||
baz := result.ModuleForTests("baz", "android_common")
|
baz := result.ModuleForTests("baz", "android_common")
|
||||||
|
|
||||||
fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "")
|
fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "")
|
||||||
barOutputPath := android.OutputFileForModule(android.PathContext(nil), bar.Module(), "")
|
barOutputPaths := bar.OutputFiles(t, "")
|
||||||
bazOutputPath := android.OutputFileForModule(android.PathContext(nil), baz.Module(), "")
|
bazOutputPaths := baz.OutputFiles(t, "")
|
||||||
|
|
||||||
android.AssertPathRelativeToTopEquals(t, "foo output path",
|
android.AssertPathRelativeToTopEquals(t, "foo output path",
|
||||||
"out/soong/.intermediates/foo/android_common/withres/foo.jar", fooOutputPath)
|
"out/soong/.intermediates/foo/android_common/withres/foo.jar", fooOutputPath)
|
||||||
android.AssertPathRelativeToTopEquals(t, "bar output path",
|
android.AssertPathsRelativeToTopEquals(t, "bar output path",
|
||||||
"out/soong/.intermediates/bar/android_common/aar/bar.jar", barOutputPath)
|
[]string{"out/soong/.intermediates/bar/android_common/aar/bar.jar"}, barOutputPaths)
|
||||||
android.AssertPathRelativeToTopEquals(t, "baz output path",
|
android.AssertPathsRelativeToTopEquals(t, "baz output path",
|
||||||
"out/soong/.intermediates/baz/android_common/withres/baz.jar", bazOutputPath)
|
[]string{"out/soong/.intermediates/baz/android_common/withres/baz.jar"}, bazOutputPaths)
|
||||||
|
|
||||||
android.AssertStringEquals(t, "foo relative output path",
|
android.AssertStringEquals(t, "foo relative output path",
|
||||||
"foo.jar", fooOutputPath.Rel())
|
"foo.jar", fooOutputPath.Rel())
|
||||||
android.AssertStringEquals(t, "bar relative output path",
|
android.AssertStringEquals(t, "bar relative output path",
|
||||||
"bar.jar", barOutputPath.Rel())
|
"bar.jar", barOutputPaths[0].Rel())
|
||||||
android.AssertStringEquals(t, "baz relative output path",
|
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.
|
// This file contains the module implementations for android_app_import and android_test_import.
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -422,6 +421,8 @@ func (a *AndroidAppImport) generateAndroidBuildActions(ctx android.ModuleContext
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ctx.SetOutputFiles([]android.Path{a.outputFile}, "")
|
||||||
|
|
||||||
// TODO: androidmk converter jni libs
|
// TODO: androidmk converter jni libs
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -461,15 +462,6 @@ func (a *AndroidAppImport) OutputFile() android.Path {
|
|||||||
return a.outputFile
|
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 {
|
func (a *AndroidAppImport) JacocoReportClassesFile() android.Path {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
14
java/java.go
14
java/java.go
@@ -2752,6 +2752,9 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
StubsLinkType: j.stubsLinkType,
|
StubsLinkType: j.stubsLinkType,
|
||||||
// TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts
|
// 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) {
|
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)
|
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 {
|
func (j *Import) HeaderJars() android.Paths {
|
||||||
return android.PathsIfNonNil(j.combinedHeaderFile)
|
return android.PathsIfNonNil(j.combinedHeaderFile)
|
||||||
}
|
}
|
||||||
|
@@ -2994,22 +2994,22 @@ func TestJavaLibraryOutputFilesRel(t *testing.T) {
|
|||||||
baz := result.ModuleForTests("baz", "android_common")
|
baz := result.ModuleForTests("baz", "android_common")
|
||||||
|
|
||||||
fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "")
|
fooOutputPath := android.OutputFileForModule(android.PathContext(nil), foo.Module(), "")
|
||||||
barOutputPath := android.OutputFileForModule(android.PathContext(nil), bar.Module(), "")
|
barOutputPaths := bar.OutputFiles(t, "")
|
||||||
bazOutputPath := android.OutputFileForModule(android.PathContext(nil), baz.Module(), "")
|
bazOutputPaths := baz.OutputFiles(t, "")
|
||||||
|
|
||||||
android.AssertPathRelativeToTopEquals(t, "foo output path",
|
android.AssertPathRelativeToTopEquals(t, "foo output path",
|
||||||
"out/soong/.intermediates/foo/android_common/javac/foo.jar", fooOutputPath)
|
"out/soong/.intermediates/foo/android_common/javac/foo.jar", fooOutputPath)
|
||||||
android.AssertPathRelativeToTopEquals(t, "bar output path",
|
android.AssertPathsRelativeToTopEquals(t, "bar output path",
|
||||||
"out/soong/.intermediates/bar/android_common/combined/bar.jar", barOutputPath)
|
[]string{"out/soong/.intermediates/bar/android_common/combined/bar.jar"}, barOutputPaths)
|
||||||
android.AssertPathRelativeToTopEquals(t, "baz output path",
|
android.AssertPathsRelativeToTopEquals(t, "baz output path",
|
||||||
"out/soong/.intermediates/baz/android_common/combined/baz.jar", bazOutputPath)
|
[]string{"out/soong/.intermediates/baz/android_common/combined/baz.jar"}, bazOutputPaths)
|
||||||
|
|
||||||
android.AssertStringEquals(t, "foo relative output path",
|
android.AssertStringEquals(t, "foo relative output path",
|
||||||
"foo.jar", fooOutputPath.Rel())
|
"foo.jar", fooOutputPath.Rel())
|
||||||
android.AssertStringEquals(t, "bar relative output path",
|
android.AssertStringEquals(t, "bar relative output path",
|
||||||
"bar.jar", barOutputPath.Rel())
|
"bar.jar", barOutputPaths[0].Rel())
|
||||||
android.AssertStringEquals(t, "baz relative output path",
|
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) {
|
func assertTestOnlyAndTopLevel(t *testing.T, ctx *android.TestResult, expectedTestOnly []string, expectedTopLevel []string) {
|
||||||
|
Reference in New Issue
Block a user