diff options
Diffstat (limited to 'api')
| -rw-r--r-- | api/Android.bp | 66 | ||||
| -rw-r--r-- | api/Android.mk | 2 | ||||
| -rw-r--r-- | api/OWNERS | 4 | ||||
| -rw-r--r-- | api/api.go | 93 |
4 files changed, 122 insertions, 43 deletions
diff --git a/api/Android.bp b/api/Android.bp index 89993e751cf0..210b8f50b803 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -38,23 +38,9 @@ bootstrap_go_package { pluginFor: ["soong_build"], } -python_defaults { - name: "python3_version_defaults", - version: { - py2: { - enabled: false, - }, - py3: { - enabled: true, - embedded_launcher: false, - }, - }, -} - python_binary_host { name: "api_versions_trimmer", srcs: ["api_versions_trimmer.py"], - defaults: ["python3_version_defaults"], } python_test_host { @@ -64,7 +50,6 @@ python_test_host { "api_versions_trimmer_unittests.py", "api_versions_trimmer.py", ], - defaults: ["python3_version_defaults"], test_options: { unit_test: true, }, @@ -73,7 +58,6 @@ python_test_host { python_binary_host { name: "merge_annotation_zips", srcs: ["merge_annotation_zips.py"], - defaults: ["python3_version_defaults"], } python_test_host { @@ -83,7 +67,6 @@ python_test_host { "merge_annotation_zips.py", "merge_annotation_zips_test.py", ], - defaults: ["python3_version_defaults"], test_options: { unit_test: true, }, @@ -193,6 +176,55 @@ genrule { "$(location :frameworks-base-api-module-lib-current.txt)", } +// This produces the same annotations.zip as framework-doc-stubs, but by using +// outputs from individual modules instead of all the source code. +genrule_defaults { + name: "sdk-annotations-defaults", + out: ["annotations.zip"], + tools: [ + "merge_annotation_zips", + "soong_zip", + ], + cmd: "$(location merge_annotation_zips) $(genDir)/out $(in) && " + + "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out", +} + +genrule { + name: "sdk-annotations.zip", + defaults: ["sdk-annotations-defaults"], + srcs: [ + ":android-non-updatable-doc-stubs{.annotations.zip}", + ":all-modules-public-annotations", + ], +} + +genrule { + name: "sdk-annotations-system.zip", + defaults: ["sdk-annotations-defaults"], + srcs: [ + ":android-non-updatable-doc-stubs-system{.annotations.zip}", + ":all-modules-system-annotations", + ], +} + +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: [ diff --git a/api/Android.mk b/api/Android.mk new file mode 100644 index 000000000000..ce5f995033c5 --- /dev/null +++ b/api/Android.mk @@ -0,0 +1,2 @@ +.PHONY: checkapi +checkapi: frameworks-base-api-current-compat frameworks-base-api-system-current-compat frameworks-base-api-module-lib-current-compat diff --git a/api/OWNERS b/api/OWNERS index 4d8ed0347f43..bf6216c168e8 100644 --- a/api/OWNERS +++ b/api/OWNERS @@ -3,7 +3,7 @@ hansson@google.com # Modularization team file:platform/packages/modules/common:/OWNERS -per-file Android.bp = file:platform/build/soong:/OWNERS +per-file Android.bp = file:platform/build/soong:/OWNERS #{LAST_RESORT_SUGGESTION} # For metalava team to disable lint checks in platform -per-file Android.bp = aurimas@google.com,emberrose@google.com,sjgilbert@google.com
\ No newline at end of file +per-file Android.bp = aurimas@google.com,emberrose@google.com,sjgilbert@google.com diff --git a/api/api.go b/api/api.go index ce8cd1426661..6a6c493e041a 100644 --- a/api/api.go +++ b/api/api.go @@ -148,17 +148,35 @@ func createMergedStubsSrcjar(ctx android.LoadHookContext, modules []string) { ctx.CreateModule(genrule.GenRuleFactory, &props) } -// This produces the same annotations.zip as framework-doc-stubs, but by using -// outputs from individual modules instead of all the source code. -func createMergedAnnotations(ctx android.LoadHookContext, modules []string) { - props := genruleProps{} - props.Name = proptools.StringPtr("sdk-annotations.zip") - props.Tools = []string{"merge_annotation_zips", "soong_zip"} - props.Out = []string{"annotations.zip"} - props.Cmd = proptools.StringPtr("$(location merge_annotation_zips) $(genDir)/out $(in) && " + - "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out") - props.Srcs = append([]string{":android-non-updatable-doc-stubs{.annotations.zip}"}, createSrcs(modules, "{.public.annotations.zip}")...) - ctx.CreateModule(genrule.GenRuleFactory, &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) { @@ -171,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{":framework-doc-stubs{.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) { @@ -278,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) @@ -291,7 +336,7 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) { createMergedFrameworkModuleLibStubs(ctx, bootclasspath) createMergedFrameworkImpl(ctx, bootclasspath) - createMergedAnnotations(ctx, bootclasspath) + createMergedAnnotationsFilegroups(ctx, bootclasspath, system_server_classpath) createFilteredApiVersions(ctx, bootclasspath) |