Export API files as part of the java_sdk_library

Bug: 153443117
Test: m nothing

Change-Id: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de
This commit is contained in:
Paul Duffin
2020-04-09 01:08:11 +01:00
parent 3d1248ceb6
commit 1fd005d5b3
3 changed files with 55 additions and 8 deletions

View File

@@ -378,6 +378,7 @@ type ApiFilePath interface {
// Provider of information about API stubs, used by java_sdk_library. // Provider of information about API stubs, used by java_sdk_library.
type ApiStubsProvider interface { type ApiStubsProvider interface {
ApiFilePath ApiFilePath
RemovedApiFilePath() android.Path
StubsSrcJar() android.Path StubsSrcJar() android.Path
} }
@@ -1266,6 +1267,10 @@ func (d *Droidstubs) ApiFilePath() android.Path {
return d.apiFilePath return d.apiFilePath
} }
func (d *Droidstubs) RemovedApiFilePath() android.Path {
return d.removedApiFile
}
func (d *Droidstubs) StubsSrcJar() android.Path { func (d *Droidstubs) StubsSrcJar() android.Path {
return d.stubsSrcJar return d.stubsSrcJar
} }

View File

@@ -236,10 +236,11 @@ type sdkLibraryProperties struct {
} }
type scopePaths struct { type scopePaths struct {
stubsHeaderPath android.Paths stubsHeaderPath android.Paths
stubsImplPath android.Paths stubsImplPath android.Paths
apiFilePath android.Path currentApiFilePath android.Path
stubsSrcJar android.Path removedApiFilePath android.Path
stubsSrcJar android.Path
} }
// Common code between sdk library and sdk library import // Common code between sdk library and sdk library import
@@ -330,7 +331,8 @@ func (module *SdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
if scopeTag, ok := tag.(scopeDependencyTag); ok { if scopeTag, ok := tag.(scopeDependencyTag); ok {
apiScope := scopeTag.apiScope apiScope := scopeTag.apiScope
scopePaths := module.getScopePaths(apiScope) scopePaths := module.getScopePaths(apiScope)
scopePaths.apiFilePath = doc.ApiFilePath() scopePaths.currentApiFilePath = doc.ApiFilePath()
scopePaths.removedApiFilePath = doc.RemovedApiFilePath()
scopePaths.stubsSrcJar = doc.StubsSrcJar() scopePaths.stubsSrcJar = doc.StubsSrcJar()
} else { } else {
ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag) ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag)
@@ -831,6 +833,12 @@ type sdkLibraryScopeProperties struct {
// The stub sources. // The stub sources.
Stub_srcs []string `android:"path"` Stub_srcs []string `android:"path"`
// The current.txt
Current_api string `android:"path"`
// The removed.txt
Removed_api string `android:"path"`
} }
type sdkLibraryImportProperties struct { type sdkLibraryImportProperties struct {
@@ -1192,9 +1200,11 @@ type sdkLibrarySdkMemberProperties struct {
} }
type scopeProperties struct { type scopeProperties struct {
Jars android.Paths Jars android.Paths
StubsSrcJar android.Path StubsSrcJar android.Path
SdkVersion string CurrentApiFile android.Path
RemovedApiFile android.Path
SdkVersion string
} }
func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
@@ -1209,6 +1219,8 @@ func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMembe
properties.Jars = jars properties.Jars = jars
properties.SdkVersion = apiScope.sdkVersion properties.SdkVersion = apiScope.sdkVersion
properties.StubsSrcJar = paths.stubsSrcJar properties.StubsSrcJar = paths.stubsSrcJar
properties.CurrentApiFile = paths.currentApiFilePath
properties.RemovedApiFile = paths.removedApiFilePath
s.Scopes[apiScope] = properties s.Scopes[apiScope] = properties
} }
} }
@@ -1237,6 +1249,18 @@ func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberCo
ctx.SnapshotBuilder().UnzipToSnapshot(properties.StubsSrcJar, snapshotRelativeDir) ctx.SnapshotBuilder().UnzipToSnapshot(properties.StubsSrcJar, snapshotRelativeDir)
scopeSet.AddProperty("stub_srcs", []string{snapshotRelativeDir}) scopeSet.AddProperty("stub_srcs", []string{snapshotRelativeDir})
if properties.CurrentApiFile != nil {
currentApiSnapshotPath := filepath.Join(scopeDir, ctx.Name()+".txt")
ctx.SnapshotBuilder().CopyToSnapshot(properties.CurrentApiFile, currentApiSnapshotPath)
scopeSet.AddProperty("current_api", currentApiSnapshotPath)
}
if properties.RemovedApiFile != nil {
removedApiSnapshotPath := filepath.Join(scopeDir, ctx.Name()+"-removed.txt")
ctx.SnapshotBuilder().CopyToSnapshot(properties.CurrentApiFile, removedApiSnapshotPath)
scopeSet.AddProperty("removed_api", removedApiSnapshotPath)
}
if properties.SdkVersion != "" { if properties.SdkVersion != "" {
scopeSet.AddProperty("sdk_version", properties.SdkVersion) scopeSet.AddProperty("sdk_version", properties.SdkVersion)
} }

View File

@@ -998,16 +998,22 @@ java_sdk_library_import {
public: { public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"], jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current", sdk_version: "current",
}, },
system: { system: {
jars: ["sdk_library/system/myjavalib-stubs.jar"], jars: ["sdk_library/system/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
current_api: "sdk_library/system/myjavalib.txt",
removed_api: "sdk_library/system/myjavalib-removed.txt",
sdk_version: "system_current", sdk_version: "system_current",
}, },
test: { test: {
jars: ["sdk_library/test/myjavalib-stubs.jar"], jars: ["sdk_library/test/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
current_api: "sdk_library/test/myjavalib.txt",
removed_api: "sdk_library/test/myjavalib-removed.txt",
sdk_version: "test_current", sdk_version: "test_current",
}, },
} }
@@ -1019,16 +1025,22 @@ java_sdk_library_import {
public: { public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"], jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current", sdk_version: "current",
}, },
system: { system: {
jars: ["sdk_library/system/myjavalib-stubs.jar"], jars: ["sdk_library/system/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
current_api: "sdk_library/system/myjavalib.txt",
removed_api: "sdk_library/system/myjavalib-removed.txt",
sdk_version: "system_current", sdk_version: "system_current",
}, },
test: { test: {
jars: ["sdk_library/test/myjavalib-stubs.jar"], jars: ["sdk_library/test/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
current_api: "sdk_library/test/myjavalib.txt",
removed_api: "sdk_library/test/myjavalib-removed.txt",
sdk_version: "test_current", sdk_version: "test_current",
}, },
} }
@@ -1040,8 +1052,14 @@ sdk_snapshot {
`), `),
checkAllCopyRules(` checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar .intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar .intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib-removed.txt
`), `),
checkMergeZips( checkMergeZips(
".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",