summaryrefslogtreecommitdiff
path: root/java/sdk_library.go
diff options
context:
space:
mode:
author Jihoon Kang <jihoonkang@google.com> 2024-01-08 08:56:20 +0000
committer Jihoon Kang <jihoonkang@google.com> 2024-01-12 01:50:19 +0000
commitf55a5f7b3732b79ad28a0ad7403fda5938e75db6 (patch)
tree28a2ef14279cfac5ce0d7bc97fd9f40a59171fe5 /java/sdk_library.go
parentbd093457e2606e9525de0efa98e3c06eafe523af (diff)
Copy exportable artifacts to module sdk snapshot
This change modifies the copy rules of the sdk_library when generating the module sdk snapshots so that the exportable artifacts (annotations zip, api file, removed api file, srcjar file) are copied instead of the everything artifacts. In order to satisfy the prebuilts compatibility, this feature is flag guarded by the build flag "RELEASE_HIDDEN_API_EXPORTABLE_STUBS" Test: m --no-skip-soong-tests Bug: 315027929 Change-Id: I8bf5bb1f196aa9b5db78ba4677caa5f4337e3021
Diffstat (limited to 'java/sdk_library.go')
-rw-r--r--java/sdk_library.go35
1 files changed, 33 insertions, 2 deletions
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 74e2da42c..72fbb1577 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -727,7 +727,9 @@ func (paths *scopePaths) extractStubsLibraryInfoFromDependency(ctx android.Modul
func (paths *scopePaths) extractEverythingStubsLibraryInfoFromDependency(ctx android.ModuleContext, dep android.Module) error {
if lib, ok := android.OtherModuleProvider(ctx, dep, JavaInfoProvider); ok {
paths.stubsHeaderPath = lib.HeaderJars
- paths.stubsImplPath = lib.ImplementationJars
+ if !ctx.Config().ReleaseHiddenApiExportableStubs() {
+ paths.stubsImplPath = lib.ImplementationJars
+ }
libDep := dep.(UsesLibraryDependency)
paths.stubsDexJarPath = libDep.DexJarBuildPath(ctx)
@@ -738,7 +740,11 @@ func (paths *scopePaths) extractEverythingStubsLibraryInfoFromDependency(ctx and
}
func (paths *scopePaths) extractExportableStubsLibraryInfoFromDependency(ctx android.ModuleContext, dep android.Module) error {
- if _, ok := android.OtherModuleProvider(ctx, dep, JavaInfoProvider); ok {
+ if lib, ok := android.OtherModuleProvider(ctx, dep, JavaInfoProvider); ok {
+ if ctx.Config().ReleaseHiddenApiExportableStubs() {
+ paths.stubsImplPath = lib.ImplementationJars
+ }
+
libDep := dep.(UsesLibraryDependency)
paths.exportableStubsDexJarPath = libDep.DexJarBuildPath(ctx)
return nil
@@ -756,6 +762,15 @@ func (paths *scopePaths) treatDepAsApiStubsProvider(dep android.Module, action f
}
}
+func (paths *scopePaths) treatDepAsExportableApiStubsProvider(dep android.Module, action func(provider ExportableApiStubsProvider)) error {
+ if exportableApiStubsProvider, ok := dep.(ExportableApiStubsProvider); ok {
+ action(exportableApiStubsProvider)
+ return nil
+ } else {
+ return fmt.Errorf("expected module that implements ExportableApiStubsSrcProvider, e.g. droidstubs")
+ }
+}
+
func (paths *scopePaths) treatDepAsApiStubsSrcProvider(dep android.Module, action func(provider ApiStubsSrcProvider)) error {
if apiStubsProvider, ok := dep.(ApiStubsSrcProvider); ok {
action(apiStubsProvider)
@@ -771,6 +786,12 @@ func (paths *scopePaths) extractApiInfoFromApiStubsProvider(provider ApiStubsPro
paths.removedApiFilePath = android.OptionalPathForPath(provider.RemovedApiFilePath())
}
+func (paths *scopePaths) extractApiInfoFromExportableApiStubsProvider(provider ExportableApiStubsProvider) {
+ paths.annotationsZip = android.OptionalPathForPath(provider.ExportableAnnotationsZip())
+ paths.currentApiFilePath = android.OptionalPathForPath(provider.ExportableApiFilePath())
+ paths.removedApiFilePath = android.OptionalPathForPath(provider.ExportableRemovedApiFilePath())
+}
+
func (paths *scopePaths) extractApiInfoFromDep(ctx android.ModuleContext, dep android.Module) error {
return paths.treatDepAsApiStubsProvider(dep, func(provider ApiStubsProvider) {
paths.extractApiInfoFromApiStubsProvider(provider)
@@ -781,6 +802,10 @@ func (paths *scopePaths) extractStubsSourceInfoFromApiStubsProviders(provider Ap
paths.stubsSrcJar = android.OptionalPathForPath(provider.StubsSrcJar())
}
+func (paths *scopePaths) extractStubsSourceInfoFromExportableApiStubsProviders(provider ExportableApiStubsSrcProvider) {
+ paths.stubsSrcJar = android.OptionalPathForPath(provider.ExportableStubsSrcJar())
+}
+
func (paths *scopePaths) extractStubsSourceInfoFromDep(ctx android.ModuleContext, dep android.Module) error {
return paths.treatDepAsApiStubsSrcProvider(dep, func(provider ApiStubsSrcProvider) {
paths.extractStubsSourceInfoFromApiStubsProviders(provider)
@@ -788,6 +813,12 @@ func (paths *scopePaths) extractStubsSourceInfoFromDep(ctx android.ModuleContext
}
func (paths *scopePaths) extractStubsSourceAndApiInfoFromApiStubsProvider(ctx android.ModuleContext, dep android.Module) error {
+ if ctx.Config().ReleaseHiddenApiExportableStubs() {
+ return paths.treatDepAsExportableApiStubsProvider(dep, func(provider ExportableApiStubsProvider) {
+ paths.extractApiInfoFromExportableApiStubsProvider(provider)
+ paths.extractStubsSourceInfoFromExportableApiStubsProviders(provider)
+ })
+ }
return paths.treatDepAsApiStubsProvider(dep, func(provider ApiStubsProvider) {
paths.extractApiInfoFromApiStubsProvider(provider)
paths.extractStubsSourceInfoFromApiStubsProviders(provider)