|  | // Copyright (C) 2019 The Android Open Source Project | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | // How API docs are generated: | 
|  | // | 
|  | // raw source files --(metalava)--> stub source files --(doclava)--> API doc | 
|  | // | 
|  | // The metalava conversion is done by droidstub modules framework-doc-*-stubs. | 
|  | // The API doc generation is done by the various droiddoc modules each of which | 
|  | // is for different format. | 
|  |  | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  | // stub source files are generated using metalava | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | framework_docs_only_libs = [ | 
|  | "voip-common", | 
|  | "android.test.mock", | 
|  | "android-support-annotations", | 
|  | "android-support-compat", | 
|  | "android-support-core-ui", | 
|  | "android-support-core-utils", | 
|  | "android-support-design", | 
|  | "android-support-dynamic-animation", | 
|  | "android-support-exifinterface", | 
|  | "android-support-fragment", | 
|  | "android-support-media-compat", | 
|  | "android-support-percent", | 
|  | "android-support-transition", | 
|  | "android-support-v7-cardview", | 
|  | "android-support-v7-gridlayout", | 
|  | "android-support-v7-mediarouter", | 
|  | "android-support-v7-palette", | 
|  | "android-support-v7-preference", | 
|  | "android-support-v13", | 
|  | "android-support-v14-preference", | 
|  | "android-support-v17-leanback", | 
|  | "android-support-vectordrawable", | 
|  | "android-support-animatedvectordrawable", | 
|  | "android-support-v7-appcompat", | 
|  | "android-support-v7-recyclerview", | 
|  | "android-support-v8-renderscript", | 
|  | "android-support-multidex", | 
|  | "android-support-multidex-instrumentation", | 
|  | ] | 
|  |  | 
|  | // These defaults enable doc-stub generation, api lint database generation and sdk value generation. | 
|  | stubs_defaults { | 
|  | name: "android-non-updatable-doc-stubs-defaults", | 
|  | defaults: ["android-non-updatable-stubs-defaults"], | 
|  | srcs: [ | 
|  | // No longer part of the stubs, but are included in the docs. | 
|  | ":android-test-base-sources", | 
|  | ":android-test-mock-sources", | 
|  | ":android-test-runner-sources", | 
|  | ], | 
|  | libs: framework_docs_only_libs, | 
|  | create_doc_stubs: true, | 
|  | write_sdk_values: true, | 
|  | } | 
|  |  | 
|  | // Defaults module for doc-stubs targets that use module source code as input. | 
|  | stubs_defaults { | 
|  | name: "framework-doc-stubs-sources-default", | 
|  | defaults: ["android-non-updatable-doc-stubs-defaults"], | 
|  | srcs: [ | 
|  | ":art.module.public.api{.public.stubs.source}", | 
|  | ":conscrypt.module.public.api{.public.stubs.source}", | 
|  | ":i18n.module.public.api{.public.stubs.source}", | 
|  |  | 
|  | ":framework-adservices-sources", | 
|  | ":framework-appsearch-sources", | 
|  | ":framework-connectivity-sources", | 
|  | ":framework-bluetooth-sources", | 
|  | ":framework-connectivity-tiramisu-updatable-sources", | 
|  | ":framework-graphics-srcs", | 
|  | ":framework-mediaprovider-sources", | 
|  | ":framework-nearby-sources", | 
|  | ":framework-ondevicepersonalization-sources", | 
|  | ":framework-permission-sources", | 
|  | ":framework-permission-s-sources", | 
|  | ":framework-scheduling-sources", | 
|  | ":framework-sdkextensions-sources", | 
|  | ":framework-statsd-sources", | 
|  | ":framework-sdksandbox-sources", | 
|  | ":framework-tethering-srcs", | 
|  | ":framework-uwb-updatable-sources", | 
|  | ":framework-wifi-updatable-sources", | 
|  | ":ike-srcs", | 
|  | ":updatable-media-srcs", | 
|  | ], | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "android-non-updatable-doc-stubs", | 
|  | defaults: [ | 
|  | "android-non-updatable-doc-stubs-defaults", | 
|  | "module-classpath-stubs-defaults", | 
|  | ], | 
|  | args: metalava_framework_docs_args, | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "android-non-updatable-doc-stubs-system", | 
|  | 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\\) ", | 
|  | } | 
|  |  | 
|  | 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", | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "framework-doc-stubs", | 
|  | defaults: ["android-non-updatable-doc-stubs-defaults"], | 
|  | srcs: [":all-modules-public-stubs-source"], | 
|  | args: metalava_framework_docs_args, | 
|  | api_levels_annotations_enabled: true, | 
|  | api_levels_annotations_dirs: [ | 
|  | "sdk-dir", | 
|  | "api-versions-jars-dir", | 
|  | ], | 
|  | aidl: { | 
|  | include_dirs: [ | 
|  | "packages/modules/Connectivity/framework/aidl-export", | 
|  | "packages/modules/Media/apex/aidl/stable", | 
|  | ], | 
|  | }, | 
|  | } | 
|  |  | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  | // API docs are created from the generated stub source files | 
|  | // using droiddoc | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | framework_docs_only_args = " -android -manifest $(location core/res/AndroidManifest.xml) " + | 
|  | "-werror -lerror -hide 111 -hide 113 -hide 125 -hide 126 -hide 127 -hide 128 " + | 
|  | "-overview $(location core/java/overview.html) " + | 
|  | // Federate Support Library references against local API file. | 
|  | "-federate SupportLib https://developer.android.com " + | 
|  | "-federationapi SupportLib $(location :current-support-api) " + | 
|  | // Federate Support Library references against local API file. | 
|  | "-federate AndroidX https://developer.android.com " + | 
|  | "-federationapi AndroidX $(location :current-androidx-api) " | 
|  |  | 
|  | doc_defaults { | 
|  | name: "framework-docs-default", | 
|  | libs: framework_docs_only_libs + [ | 
|  | "stub-annotations", | 
|  | "unsupportedappusage", | 
|  | ], | 
|  | html_dirs: [ | 
|  | "docs/html", | 
|  | ], | 
|  | knowntags: [ | 
|  | "docs/knowntags.txt", | 
|  | ":art.module.public.api{.doctags}", | 
|  | ], | 
|  | custom_template: "droiddoc-templates-sdk", | 
|  | resourcesdir: "docs/html/reference/images/", | 
|  | resourcesoutdir: "reference/android/images/", | 
|  | hdf: [ | 
|  | "dac true", | 
|  | "sdk.codename O", | 
|  | "sdk.preview.version 1", | 
|  | "sdk.version 7.0", | 
|  | "sdk.rel.id 1", | 
|  | "sdk.preview 0", | 
|  | ], | 
|  | arg_files: [ | 
|  | "core/res/AndroidManifest.xml", | 
|  | "core/java/overview.html", | 
|  | ":current-support-api", | 
|  | ":current-androidx-api", | 
|  | ], | 
|  | // TODO(b/169090544): remove below aidl includes. | 
|  | aidl: { | 
|  | local_include_dirs: ["media/aidl"], | 
|  | include_dirs: [ | 
|  | "frameworks/av/aidl", | 
|  | "frameworks/native/libs/permission/aidl", | 
|  | ], | 
|  | }, | 
|  | } | 
|  |  | 
|  | doc_defaults { | 
|  | name: "framework-dokka-docs-default", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "doc-comment-check-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | args: framework_docs_only_args + " -referenceonly -parsecomments", | 
|  | installable: false, | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "offline-sdk-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc offline", | 
|  | ], | 
|  | compat_config: ":global-compat-config", | 
|  | proofread_file: "offline-sdk-docs-proofread.txt", | 
|  | args: framework_docs_only_args + " -offlinemode -title \"Android SDK\"", | 
|  | static_doc_index_redirect: "docs/docs-preview-index.html", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | // Please sync with android-api-council@ before making any changes for the name property below. | 
|  | // Since there's cron jobs that fetch offline-sdk-referenceonly-docs-docs.zip periodically. | 
|  | // See b/116221385 for reference. | 
|  | name: "offline-sdk-referenceonly-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc offline", | 
|  | ], | 
|  | proofread_file: "offline-sdk-referenceonly-docs-proofread.txt", | 
|  | args: framework_docs_only_args + " -offlinemode -title \"Android SDK\" -referenceonly", | 
|  | static_doc_index_redirect: "docs/docs-documentation-redirect.html", | 
|  | static_doc_properties: "docs/source.properties", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | // Please sync with android-api-council@ before making any changes for the name property below. | 
|  | // Since there's cron jobs that fetch offline-system-sdk-referenceonly-docs-docs.zip periodically. | 
|  | // See b/116221385 for reference. | 
|  | name: "offline-system-sdk-referenceonly-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-system-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc offline", | 
|  | ], | 
|  | proofread_file: "offline-system-sdk-referenceonly-docs-proofread.txt", | 
|  | args: framework_docs_only_args + " -hide 101 -hide 104 -hide 108" + | 
|  | " -offlinemode -title \"Android System SDK\" -referenceonly", | 
|  | static_doc_index_redirect: "docs/docs-documentation-redirect.html", | 
|  | static_doc_properties: "docs/source.properties", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "online-sdk-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | "android.hasSamples true", | 
|  | ], | 
|  | proofread_file: "online-sdk-docs-proofread.txt", | 
|  | args: framework_docs_only_args + | 
|  | " -toroot / -samplegroup Admin " + | 
|  | " -samplegroup Background " + | 
|  | " -samplegroup Connectivity " + | 
|  | " -samplegroup Content " + | 
|  | " -samplegroup Input " + | 
|  | " -samplegroup Media " + | 
|  | " -samplegroup Notification " + | 
|  | " -samplegroup RenderScript " + | 
|  | " -samplegroup Security " + | 
|  | " -samplegroup Sensors " + | 
|  | " -samplegroup System " + | 
|  | " -samplegroup Testing " + | 
|  | " -samplegroup UI " + | 
|  | " -samplegroup Views " + | 
|  | " -samplegroup Wearable -samplesdir development/samples/browseable ", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "online-system-api-sdk-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-system-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | "android.hasSamples true", | 
|  | ], | 
|  | proofread_file: "online-system-api-sdk-docs-proofread.txt", | 
|  | args: framework_docs_only_args + | 
|  | " -referenceonly " + | 
|  | " -title \"Android SDK - Including system APIs.\" " + | 
|  | " -hide 101 " + | 
|  | " -hide 104 " + | 
|  | " -hide 108 " + | 
|  | " -toroot / -samplegroup Admin " + | 
|  | " -samplegroup Background " + | 
|  | " -samplegroup Connectivity " + | 
|  | " -samplegroup Content " + | 
|  | " -samplegroup Input " + | 
|  | " -samplegroup Media " + | 
|  | " -samplegroup Notification " + | 
|  | " -samplegroup RenderScript " + | 
|  | " -samplegroup Security " + | 
|  | " -samplegroup Sensors " + | 
|  | " -samplegroup System " + | 
|  | " -samplegroup Testing " + | 
|  | " -samplegroup UI " + | 
|  | " -samplegroup Views " + | 
|  | " -samplegroup Wearable -samplesdir development/samples/browseable ", | 
|  | installable: false, | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "ds-docs-java", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | "android.hasSamples true", | 
|  | ], | 
|  | proofread_file: "ds-docs-proofread.txt", | 
|  | args: framework_docs_only_args + | 
|  | " -toroot / -yamlV2 -metalavaApiSince -samplegroup Admin " + | 
|  | " -samplegroup Background " + | 
|  | " -samplegroup Connectivity " + | 
|  | " -samplegroup Content " + | 
|  | " -samplegroup Input " + | 
|  | " -samplegroup Media " + | 
|  | " -samplegroup Notification " + | 
|  | " -samplegroup RenderScript " + | 
|  | " -samplegroup Security " + | 
|  | " -samplegroup Sensors " + | 
|  | " -samplegroup System " + | 
|  | " -samplegroup Testing " + | 
|  | " -samplegroup UI " + | 
|  | " -samplegroup Views " + | 
|  | " -samplegroup Wearable -devsite -samplesdir development/samples/browseable ", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "ds-docs-kt", | 
|  | defaults: ["framework-dokka-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | args: "-noJdkLink -links https://kotlinlang.org/api/latest/jvm/stdlib/^external/dokka/package-list " + | 
|  | "-noStdlibLink", | 
|  | proofread_file: "ds-dokka-proofread.txt", | 
|  | dokka_enabled: true, | 
|  | } | 
|  |  | 
|  | java_genrule { | 
|  | name: "ds-docs", | 
|  | tools: [ | 
|  | "zip2zip", | 
|  | "merge_zips", | 
|  | ], | 
|  | srcs: [ | 
|  | ":ds-docs-java{.docs.zip}", | 
|  | ":ds-docs-kt{.docs.zip}", | 
|  | ], | 
|  | out: ["ds-docs.zip"], | 
|  | dist: { | 
|  | targets: ["docs"], | 
|  | }, | 
|  | cmd: "$(location zip2zip) -i $(location :ds-docs-kt{.docs.zip}) -o $(genDir)/ds-docs-kt-moved.zip **/*:en/reference/kotlin && " + | 
|  | "$(location merge_zips) $(out) $(location :ds-docs-java{.docs.zip}) $(genDir)/ds-docs-kt-moved.zip", | 
|  | } | 
|  |  | 
|  | java_genrule { | 
|  | name: "ds-docs-switched", | 
|  | tools: [ | 
|  | "switcher4", | 
|  | "soong_zip", | 
|  | ], | 
|  | srcs: [ | 
|  | ":ds-docs-java{.docs.zip}", | 
|  | ":ds-docs-kt{.docs.zip}", | 
|  | ], | 
|  | out: ["ds-docs-switched.zip"], | 
|  | dist: { | 
|  | targets: ["docs"], | 
|  | }, | 
|  | cmd: "unzip -q $(location :ds-docs-java{.docs.zip}) -d $(genDir) && " + | 
|  | "unzip -q $(location :ds-docs-kt{.docs.zip}) -d $(genDir)/en/reference/kotlin && " + | 
|  | "SWITCHER=$$(cd $$(dirname $(location switcher4)) && pwd)/$$(basename $(location switcher4)) && " + | 
|  | "(cd $(genDir)/en/reference && $$SWITCHER --work platform) > /dev/null && " + | 
|  | "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "ds-static-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | ], | 
|  | args: framework_docs_only_args + | 
|  | " -staticonly " + | 
|  | " -toroot / " + | 
|  | " -devsite " + | 
|  | " -ignoreJdLinks ", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "ds-ref-navtree-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | ], | 
|  | args: framework_docs_only_args + | 
|  | " -toroot / " + | 
|  | " -atLinksNavtree " + | 
|  | " -navtreeonly ", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "online-sdk-dev-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | "android.hasSamples true", | 
|  | ], | 
|  | proofread_file: "online-sdk-dev-docs-proofread.txt", | 
|  | args: framework_docs_only_args + | 
|  | " -toroot / -samplegroup Admin " + | 
|  | " -samplegroup Background " + | 
|  | " -samplegroup Connectivity " + | 
|  | " -samplegroup Content " + | 
|  | " -samplegroup Input " + | 
|  | " -samplegroup Media " + | 
|  | " -samplegroup Notification " + | 
|  | " -samplegroup RenderScript " + | 
|  | " -samplegroup Security " + | 
|  | " -samplegroup Sensors " + | 
|  | " -samplegroup System " + | 
|  | " -samplegroup Testing " + | 
|  | " -samplegroup UI " + | 
|  | " -samplegroup Views " + | 
|  | " -samplegroup Wearable -samplesdir development/samples/browseable ", | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "hidden-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs", | 
|  | ], | 
|  | proofread_file: "hidden-docs-proofread.txt", | 
|  | args: framework_docs_only_args + | 
|  | " -referenceonly " + | 
|  | " -title \"Android SDK - Including hidden APIs.\"", | 
|  | } |