Merge "droidstubs depend on the combined last api filegroup modules" into main
This commit is contained in:
commit
5a87a9ac1c
3 changed files with 53 additions and 14 deletions
|
@ -158,6 +158,21 @@ func createApiModule(mctx android.LoadHookContext, name string, path string) {
|
|||
mctx.CreateModule(genrule.GenRuleFactory, &genruleProps)
|
||||
}
|
||||
|
||||
func createCombinedApiFilegroupModule(mctx android.LoadHookContext, name string, srcs []string) {
|
||||
filegroupProps := struct {
|
||||
Name *string
|
||||
Srcs []string
|
||||
}{}
|
||||
filegroupProps.Name = proptools.StringPtr(name)
|
||||
|
||||
var transformedSrcs []string
|
||||
for _, src := range srcs {
|
||||
transformedSrcs = append(transformedSrcs, ":"+src)
|
||||
}
|
||||
filegroupProps.Srcs = transformedSrcs
|
||||
mctx.CreateModule(android.FileGroupFactory, &filegroupProps)
|
||||
}
|
||||
|
||||
func createLatestApiModuleExtensionVersionFile(mctx android.LoadHookContext, name string, version string) {
|
||||
genruleProps := struct {
|
||||
Name *string
|
||||
|
@ -252,6 +267,10 @@ func PrebuiltApiModuleName(module, scope, version string) string {
|
|||
return module + ".api." + scope + "." + version
|
||||
}
|
||||
|
||||
func PrebuiltApiCombinedModuleName(module, scope, version string) string {
|
||||
return module + ".api.combined." + scope + "." + version
|
||||
}
|
||||
|
||||
func prebuiltApiFiles(mctx android.LoadHookContext, p *prebuiltApis) {
|
||||
// <apiver>/<scope>/api/<module>.txt
|
||||
apiLevelFiles := globApiDirs(mctx, p, "api/*.txt")
|
||||
|
@ -307,7 +326,9 @@ func prebuiltApiFiles(mctx android.LoadHookContext, p *prebuiltApis) {
|
|||
}
|
||||
|
||||
// Sort the keys in order to make build.ninja stable
|
||||
for _, k := range android.SortedKeys(latest) {
|
||||
sortedLatestKeys := android.SortedKeys(latest)
|
||||
|
||||
for _, k := range sortedLatestKeys {
|
||||
info := latest[k]
|
||||
name := PrebuiltApiModuleName(info.module, info.scope, "latest")
|
||||
latestExtensionVersionModuleName := PrebuiltApiModuleName(info.module, info.scope, "latest.extension_version")
|
||||
|
@ -333,11 +354,25 @@ func prebuiltApiFiles(mctx android.LoadHookContext, p *prebuiltApis) {
|
|||
}
|
||||
}
|
||||
// Create empty incompatibilities files for remaining modules
|
||||
for _, k := range android.SortedKeys(latest) {
|
||||
// If the incompatibility module has been created, create a corresponding combined module
|
||||
for _, k := range sortedLatestKeys {
|
||||
if _, ok := incompatibilities[k]; !ok {
|
||||
createEmptyFile(mctx, PrebuiltApiModuleName(latest[k].module+"-incompatibilities", latest[k].scope, "latest"))
|
||||
}
|
||||
}
|
||||
|
||||
// Create combined latest api and removed api files modules.
|
||||
// The combined modules list all api files of the api scope and its subset api scopes.
|
||||
for _, k := range sortedLatestKeys {
|
||||
info := latest[k]
|
||||
name := PrebuiltApiCombinedModuleName(info.module, info.scope, "latest")
|
||||
|
||||
var srcs []string
|
||||
currentApiScope := scopeByName[info.scope]
|
||||
srcs = append(srcs, PrebuiltApiModuleName(info.module, currentApiScope.name, "latest"))
|
||||
|
||||
createCombinedApiFilegroupModule(mctx, name, srcs)
|
||||
}
|
||||
}
|
||||
|
||||
func createPrebuiltApiModules(mctx android.LoadHookContext) {
|
||||
|
|
|
@ -1672,12 +1672,16 @@ func latestPrebuiltApiModuleName(name string, apiScope *apiScope) string {
|
|||
return PrebuiltApiModuleName(name, apiScope.name, "latest")
|
||||
}
|
||||
|
||||
func latestPrebuiltApiCombinedModuleName(name string, apiScope *apiScope) string {
|
||||
return PrebuiltApiCombinedModuleName(name, apiScope.name, "latest")
|
||||
}
|
||||
|
||||
func (module *SdkLibrary) latestApiFilegroupName(apiScope *apiScope) string {
|
||||
return ":" + module.latestApiModuleName(apiScope)
|
||||
}
|
||||
|
||||
func (module *SdkLibrary) latestApiModuleName(apiScope *apiScope) string {
|
||||
return latestPrebuiltApiModuleName(module.distStem(), apiScope)
|
||||
return latestPrebuiltApiCombinedModuleName(module.distStem(), apiScope)
|
||||
}
|
||||
|
||||
func (module *SdkLibrary) latestRemovedApiFilegroupName(apiScope *apiScope) string {
|
||||
|
@ -1685,7 +1689,7 @@ func (module *SdkLibrary) latestRemovedApiFilegroupName(apiScope *apiScope) stri
|
|||
}
|
||||
|
||||
func (module *SdkLibrary) latestRemovedApiModuleName(apiScope *apiScope) string {
|
||||
return latestPrebuiltApiModuleName(module.distStem()+"-removed", apiScope)
|
||||
return latestPrebuiltApiCombinedModuleName(module.distStem()+"-removed", apiScope)
|
||||
}
|
||||
|
||||
func (module *SdkLibrary) latestIncompatibilitiesFilegroupName(apiScope *apiScope) string {
|
||||
|
|
|
@ -139,10 +139,10 @@ func TestJavaSdkLibrary(t *testing.T) {
|
|||
|
||||
exportedComponentsInfo, _ := android.SingletonModuleProvider(result, foo.Module(), android.ExportedComponentsInfoProvider)
|
||||
expectedFooExportedComponents := []string{
|
||||
"foo-removed.api.public.latest",
|
||||
"foo-removed.api.system.latest",
|
||||
"foo.api.public.latest",
|
||||
"foo.api.system.latest",
|
||||
"foo-removed.api.combined.public.latest",
|
||||
"foo-removed.api.combined.system.latest",
|
||||
"foo.api.combined.public.latest",
|
||||
"foo.api.combined.system.latest",
|
||||
"foo.stubs",
|
||||
"foo.stubs.exportable",
|
||||
"foo.stubs.exportable.system",
|
||||
|
@ -556,8 +556,8 @@ func TestJavaSdkLibrary_Deps(t *testing.T) {
|
|||
|
||||
CheckModuleDependencies(t, result.TestContext, "sdklib", "android_common", []string{
|
||||
`dex2oatd`,
|
||||
`sdklib-removed.api.public.latest`,
|
||||
`sdklib.api.public.latest`,
|
||||
`sdklib-removed.api.combined.public.latest`,
|
||||
`sdklib.api.combined.public.latest`,
|
||||
`sdklib.impl`,
|
||||
`sdklib.stubs`,
|
||||
`sdklib.stubs.exportable`,
|
||||
|
@ -960,8 +960,8 @@ func TestJavaSdkLibraryImport_WithSource(t *testing.T) {
|
|||
CheckModuleDependencies(t, result.TestContext, "sdklib", "android_common", []string{
|
||||
`dex2oatd`,
|
||||
`prebuilt_sdklib`,
|
||||
`sdklib-removed.api.public.latest`,
|
||||
`sdklib.api.public.latest`,
|
||||
`sdklib-removed.api.combined.public.latest`,
|
||||
`sdklib.api.combined.public.latest`,
|
||||
`sdklib.impl`,
|
||||
`sdklib.stubs`,
|
||||
`sdklib.stubs.exportable`,
|
||||
|
@ -1039,8 +1039,8 @@ func testJavaSdkLibraryImport_Preferred(t *testing.T, prefer string, preparer an
|
|||
|
||||
CheckModuleDependencies(t, result.TestContext, "sdklib", "android_common", []string{
|
||||
`prebuilt_sdklib`,
|
||||
`sdklib-removed.api.public.latest`,
|
||||
`sdklib.api.public.latest`,
|
||||
`sdklib-removed.api.combined.public.latest`,
|
||||
`sdklib.api.combined.public.latest`,
|
||||
`sdklib.impl`,
|
||||
`sdklib.stubs`,
|
||||
`sdklib.stubs.exportable`,
|
||||
|
|
Loading…
Reference in a new issue