diff options
author | Paul Duffin <paulduffin@google.com> | 2020-06-17 16:59:43 +0100 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2020-06-20 11:38:08 +0100 |
commit | 9ee66da850cbc0be76e556f57af37781e5631662 (patch) | |
tree | d5d224336ca63f5a9f464f569a24d141ebc2aecf /java/java.go | |
parent | 5ef04d1ee7bf741611ff4be708bf88c7619f40ae (diff) |
Fix check-boot-jars when a boot jar is provided by prebuilt
Previously, when a boot jar was provided by a java_sdk_library_import
module the check-boot-jars check failed because the file it depended on
was not available. In an incremental build the build failed due to the
file in the out directory not having a rule to generate it.
That was because the module was named prebuilt_<module>.<apex> instead
of <module>.<apex>. This was fixed by simply removing prebuilt_ prefix
from the name if it was present.
After fixing that the check-boot-jars still did not work properly
because it was expecting a jar file containing .class files but instead
was given a jar file containing .dex files which meant the check did
not work properly.
This was fixed by defining a new ApexDependency interface for use by
the apex/apex.go code to use instead of java.Dependency for generating
the androidmk entries. The *SdkLibraryImport type then implemented
those, by delegating to the implementation library.
Bug: 158304459
Bug: 159112414
Test: m check-boot-jars
m checkbuild
manual inspection of the .jar file used by check-boot-jars to
ensure it contained .class files and not .dex files.
Change-Id: I545c5c9072dd472337d2f9b4dfdf08f53c981662
Merged-In: I545c5c9072dd472337d2f9b4dfdf08f53c981662
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/java/java.go b/java/java.go index 9e196f43d..90e9b1f6f 100644 --- a/java/java.go +++ b/java/java.go @@ -517,11 +517,16 @@ func (j *Module) OutputFiles(tag string) (android.Paths, error) { var _ android.OutputFileProducer = (*Module)(nil) -type Dependency interface { +// Methods that need to be implemented for a module that is added to apex java_libs property. +type ApexDependency interface { HeaderJars() android.Paths + ImplementationAndResourcesJars() android.Paths +} + +type Dependency interface { + ApexDependency ImplementationJars() android.Paths ResourceJars() android.Paths - ImplementationAndResourcesJars() android.Paths DexJar() android.Path AidlIncludeDirs() android.Paths ExportedSdkLibs() []string |