Track sources for srcjars across modules

Robolectric coverage needs a srcjar that sometimes needs to
include sources of dependencies.  Track the arguments and
dependencies necessary to jar the sources.

Test: TestIncludeSrcs
Change-Id: I9979d2b8350923a2237e743c232e6e548f54ba3b
This commit is contained in:
Colin Cross
2019-05-03 15:28:19 -07:00
parent 988708ce75
commit 0c4ce21615
5 changed files with 111 additions and 27 deletions

View File

@@ -34,6 +34,9 @@ type DeviceHostConverter struct {
implementationAndResourceJars android.Paths
resourceJars android.Paths
srcJarArgs []string
srcJarDeps android.Paths
combinedHeaderJar android.Path
combinedImplementationJar android.Path
}
@@ -100,6 +103,10 @@ func (d *DeviceHostConverter) GenerateAndroidBuildActions(ctx android.ModuleCont
d.implementationJars = append(d.implementationJars, dep.ImplementationJars()...)
d.implementationAndResourceJars = append(d.implementationAndResourceJars, dep.ImplementationAndResourcesJars()...)
d.resourceJars = append(d.resourceJars, dep.ResourceJars()...)
srcJarArgs, srcJarDeps := dep.SrcJarArgs()
d.srcJarArgs = append(d.srcJarArgs, srcJarArgs...)
d.srcJarDeps = append(d.srcJarDeps, srcJarDeps...)
} else {
ctx.PropertyErrorf("libs", "module %q cannot be used as a dependency", ctx.OtherModuleName(m))
}
@@ -157,6 +164,10 @@ func (d *DeviceHostConverter) ExportedSdkLibs() []string {
return nil
}
func (d *DeviceHostConverter) SrcJarArgs() ([]string, android.Paths) {
return d.srcJarArgs, d.srcJarDeps
}
func (d *DeviceHostConverter) AndroidMk() android.AndroidMkData {
return android.AndroidMkData{
Class: "JAVA_LIBRARIES",