diff options
-rw-r--r-- | ApiDocs.bp | 45 | ||||
-rw-r--r-- | StubLibraries.bp | 57 | ||||
-rw-r--r-- | api/Android.bp | 18 | ||||
-rw-r--r-- | api/api.go | 95 |
4 files changed, 180 insertions, 35 deletions
diff --git a/ApiDocs.bp b/ApiDocs.bp index c87ecde4e5c8..bf3a6a356e31 100644 --- a/ApiDocs.bp +++ b/ApiDocs.bp @@ -122,17 +122,30 @@ droidstubs { } droidstubs { - name: "framework-doc-system-stubs", - defaults: ["framework-doc-stubs-sources-default"], + name: "android-non-updatable-doc-stubs-module-lib", + defaults: [ + "android-non-updatable-doc-stubs-defaults", + "module-classpath-stubs-defaults", + ], args: metalava_framework_docs_args + - " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) ", - api_levels_annotations_enabled: true, - api_levels_annotations_dirs: [ - "sdk-dir", - "api-versions-jars-dir", + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) " + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES\\) ", + generate_stubs: false, // We're only using this module for the annotations.zip output, disable doc-stubs. + write_sdk_values: false, +} + +droidstubs { + name: "android-non-updatable-doc-stubs-system-server", + defaults: [ + "android-non-updatable-doc-stubs-defaults", + "module-classpath-stubs-defaults", ], - api_levels_sdk_type: "system", - extensions_info_file: ":sdk-extensions-info", + args: metalava_framework_docs_args + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) " + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES\\) " + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\) ", + generate_stubs: false, // We're only using this module for the annotations.zip output, disable doc-stubs. + write_sdk_values: false, } droidstubs { @@ -150,6 +163,20 @@ droidstubs { extensions_info_file: ":sdk-extensions-info", } +droidstubs { + name: "framework-doc-system-stubs", + defaults: ["framework-doc-stubs-sources-default"], + args: metalava_framework_docs_args + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) ", + api_levels_annotations_enabled: true, + api_levels_annotations_dirs: [ + "sdk-dir", + "api-versions-jars-dir", + ], + api_levels_sdk_type: "system", + extensions_info_file: ":sdk-extensions-info", +} + ///////////////////////////////////////////////////////////////////// // API docs are created from the generated stub source files // using droiddoc diff --git a/StubLibraries.bp b/StubLibraries.bp index bc2e6dd79fea..0e084968410f 100644 --- a/StubLibraries.bp +++ b/StubLibraries.bp @@ -411,6 +411,36 @@ java_library { ], } +java_library { + name: "android_module_stubs_current_with_test_libs", + static_libs: [ + "android_module_lib_stubs_current", + "android.test.base.stubs", + "android.test.mock.stubs", + "android.test.runner.stubs", + ], + defaults: ["android.jar_defaults"], + visibility: [ + "//visibility:override", + "//visibility:private", + ], +} + +java_library { + name: "android_system_server_stubs_current_with_test_libs", + static_libs: [ + "android_system_server_stubs_current", + "android.test.base.stubs.system", + "android.test.mock.stubs.system", + "android.test.runner.stubs.system", + ], + defaults: ["android.jar_defaults"], + visibility: [ + "//visibility:override", + "//visibility:private", + ], +} + droidstubs { name: "api_versions_public", srcs: [":android_stubs_current_with_test_libs{.jar}"], @@ -420,6 +450,7 @@ droidstubs { "sdk-dir", "api-versions-jars-dir", ], + api_levels_sdk_type: "public", extensions_info_file: ":sdk-extensions-info", } @@ -436,6 +467,32 @@ droidstubs { extensions_info_file: ":sdk-extensions-info", } +droidstubs { + name: "api_versions_module_lib", + srcs: [":android_module_stubs_current_with_test_libs{.jar}"], + generate_stubs: false, + api_levels_annotations_enabled: true, + api_levels_annotations_dirs: [ + "sdk-dir", + "api-versions-jars-dir", + ], + api_levels_sdk_type: "module-lib", + extensions_info_file: ":sdk-extensions-info", +} + +droidstubs { + name: "api_versions_system_server", + srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"], + generate_stubs: false, + api_levels_annotations_enabled: true, + api_levels_annotations_dirs: [ + "sdk-dir", + "api-versions-jars-dir", + ], + api_levels_sdk_type: "system-server", + extensions_info_file: ":sdk-extensions-info", +} + ///////////////////////////////////////////////////////////////////// // hwbinder.stubs provides APIs required for building HIDL Java // libraries. diff --git a/api/Android.bp b/api/Android.bp index 505d7bf99135..210b8f50b803 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -208,6 +208,24 @@ genrule { } genrule { + name: "sdk-annotations-module-lib.zip", + defaults: ["sdk-annotations-defaults"], + srcs: [ + ":android-non-updatable-doc-stubs-module-lib{.annotations.zip}", + ":all-modules-module-lib-annotations", + ], +} + +genrule { + name: "sdk-annotations-system-server.zip", + defaults: ["sdk-annotations-defaults"], + srcs: [ + ":android-non-updatable-doc-stubs-system-server{.annotations.zip}", + ":all-modules-system-server-annotations", + ], +} + +genrule { name: "combined-removed-dex", visibility: [ "//frameworks/base/boot", 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) |