diff options
Diffstat (limited to 'api/api.go')
-rw-r--r-- | api/api.go | 95 |
1 files changed, 69 insertions, 26 deletions
diff --git a/api/api.go b/api/api.go index f15804156bdf..6a6c493e041a 100644 --- a/api/api.go +++ b/api/api.go @@ -148,18 +148,35 @@ func createMergedStubsSrcjar(ctx android.LoadHookContext, modules []string) { ctx.CreateModule(genrule.GenRuleFactory, &props) } -func createMergedPublicAnnotationsFilegroup(ctx android.LoadHookContext, modules []string) { - props := fgProps{} - props.Name = proptools.StringPtr("all-modules-public-annotations") - props.Srcs = createSrcs(modules, "{.public.annotations.zip}") - ctx.CreateModule(android.FileGroupFactory, &props) -} - -func createMergedSystemAnnotationsFilegroup(ctx android.LoadHookContext, modules []string) { - props := fgProps{} - props.Name = proptools.StringPtr("all-modules-system-annotations") - props.Srcs = createSrcs(modules, "{.system.annotations.zip}") - ctx.CreateModule(android.FileGroupFactory, &props) +func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules []string) { + for _, i := range []struct{ + name string + tag string + modules []string + }{ + { + name: "all-modules-public-annotations", + tag: "{.public.annotations.zip}", + modules: modules, + }, { + name: "all-modules-system-annotations", + tag: "{.system.annotations.zip}", + modules: modules, + }, { + name: "all-modules-module-lib-annotations", + tag: "{.module-lib.annotations.zip}", + modules: modules, + }, { + name: "all-modules-system-server-annotations", + tag: "{.system-server.annotations.zip}", + modules: system_server_modules, + }, + } { + props := fgProps{} + props.Name = proptools.StringPtr(i.name) + props.Srcs = createSrcs(i.modules, i.tag) + ctx.CreateModule(android.FileGroupFactory, &props) + } } func createFilteredApiVersions(ctx android.LoadHookContext, modules []string) { @@ -172,17 +189,43 @@ func createFilteredApiVersions(ctx android.LoadHookContext, modules []string) { // difficult to achieve. modules = remove(modules, art) - props := genruleProps{} - props.Name = proptools.StringPtr("api-versions-xml-public-filtered") - props.Tools = []string{"api_versions_trimmer"} - props.Out = []string{"api-versions-public-filtered.xml"} - props.Cmd = proptools.StringPtr("$(location api_versions_trimmer) $(out) $(in)") - // Note: order matters: first parameter is the full api-versions.xml - // after that the stubs files in any order - // stubs files are all modules that export API surfaces EXCEPT ART - props.Srcs = append([]string{":api_versions_public{.api_versions.xml}"}, createSrcs(modules, ".stubs{.jar}")...) - props.Dists = []android.Dist{{Targets: []string{"sdk"}}} - ctx.CreateModule(genrule.GenRuleFactory, &props) + for _, i := range []struct{ + name string + out string + in string + }{ + { + // We shouldn't need public-filtered or system-filtered. + // public-filtered is currently used to lint things that + // use the module sdk or the system server sdk, but those + // should be switched over to module-filtered and + // system-server-filtered, and then public-filtered can + // be removed. + name: "api-versions-xml-public-filtered", + out: "api-versions-public-filtered.xml", + in: ":api_versions_public{.api_versions.xml}", + }, { + name: "api-versions-xml-module-lib-filtered", + out: "api-versions-module-lib-filtered.xml", + in: ":api_versions_module_lib{.api_versions.xml}", + }, { + name: "api-versions-xml-system-server-filtered", + out: "api-versions-system-server-filtered.xml", + in: ":api_versions_system_server{.api_versions.xml}", + }, + } { + props := genruleProps{} + props.Name = proptools.StringPtr(i.name) + props.Out = []string{i.out} + // Note: order matters: first parameter is the full api-versions.xml + // after that the stubs files in any order + // stubs files are all modules that export API surfaces EXCEPT ART + props.Srcs = append([]string{i.in}, createSrcs(modules, ".stubs{.jar}")...) + props.Tools = []string{"api_versions_trimmer"} + props.Cmd = proptools.StringPtr("$(location api_versions_trimmer) $(out) $(in)") + props.Dists = []android.Dist{{Targets: []string{"sdk"}}} + ctx.CreateModule(genrule.GenRuleFactory, &props) + } } func createMergedPublicStubs(ctx android.LoadHookContext, modules []string) { @@ -279,11 +322,12 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) { bootclasspath := a.properties.Bootclasspath + system_server_classpath := a.properties.System_server_classpath if ctx.Config().VendorConfig("ANDROID").Bool("include_nonpublic_framework_api") { bootclasspath = append(bootclasspath, a.properties.Conditional_bootclasspath...) sort.Strings(bootclasspath) } - createMergedTxts(ctx, bootclasspath, a.properties.System_server_classpath) + createMergedTxts(ctx, bootclasspath, system_server_classpath) createMergedStubsSrcjar(ctx, bootclasspath) @@ -292,8 +336,7 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) { createMergedFrameworkModuleLibStubs(ctx, bootclasspath) createMergedFrameworkImpl(ctx, bootclasspath) - createMergedPublicAnnotationsFilegroup(ctx, bootclasspath) - createMergedSystemAnnotationsFilegroup(ctx, bootclasspath) + createMergedAnnotationsFilegroups(ctx, bootclasspath, system_server_classpath) createFilteredApiVersions(ctx, bootclasspath) |