java_sdk_library: Improve consistency with ..._import
The scopePaths struct is used by both java_sdk_library and its prebuilt but was not populated in the same way. This change addresses those discrepancies in preparation for a follow up change which will allow access to some of those fields through OutputFileProvider. Changes: * Document the scopePaths field and struct. * Switch those fields that may not be fully populated from Paths to OptionalPath to make that 100% clear and protect against unchecked use. * Switch java_sdk_library_import to use the dependency extraction mechanism driven by the dependency tag. This should actually have been part of the change that added that mechanism. * Only create prebuilt_stubs_sources if sources have been provided. * Add dependencies from java_sdk_library_import on its stubs source child modules if sources have been provided. That will ensure the stubsSrcJar field is updated. * Updates current/removedApiFilePath if provided for the scope in java_sdk_library_import. * Extracts ApiStubsSrcProvider from ApiStubsProvider to allow it to be implemented by PrebuiltStubsSources so that it can provide access to the stubs src jar that it creates. Test: m nothing Bug: 148080325 Bug: 155164730 Change-Id: Ic5bf884b2b1e79841843e7c3b4642796ecd49f5d
This commit is contained in:
@@ -351,11 +351,16 @@ type ApiFilePath interface {
|
||||
ApiFilePath() android.Path
|
||||
}
|
||||
|
||||
type ApiStubsSrcProvider interface {
|
||||
StubsSrcJar() android.Path
|
||||
}
|
||||
|
||||
// Provider of information about API stubs, used by java_sdk_library.
|
||||
type ApiStubsProvider interface {
|
||||
ApiFilePath
|
||||
RemovedApiFilePath() android.Path
|
||||
StubsSrcJar() android.Path
|
||||
|
||||
ApiStubsSrcProvider
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1932,6 +1937,10 @@ func (p *PrebuiltStubsSources) OutputFiles(tag string) (android.Paths, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (d *PrebuiltStubsSources) StubsSrcJar() android.Path {
|
||||
return d.stubsSrcJar
|
||||
}
|
||||
|
||||
func (p *PrebuiltStubsSources) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
p.stubsSrcJar = android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"stubs.srcjar")
|
||||
|
||||
|
Reference in New Issue
Block a user