|  | // 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. | 
|  |  | 
|  | // 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", | 
|  | ], | 
|  | flags: [ | 
|  | // These errors are suppressed in the doc stubs as it isn't easy to suppress them. | 
|  | // They remain unsuppressed/active in the "main" stubs build (the jar stubs). | 
|  | // These can be removed when either a) all the issues have been fixed or | 
|  | // b) these reporting of these issues is gated behind api lint being enabled in metalava. | 
|  | "--hide BroadcastBehavior", | 
|  | "--hide DeprecationMismatch", | 
|  | "--hide MissingPermission", | 
|  | "--hide RequiresPermission", | 
|  | "--hide SdkConstant", | 
|  | "--hide Todo", | 
|  | ], | 
|  | 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-nfc-updatable-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", | 
|  | ], | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "android-non-updatable-doc-stubs-system", | 
|  | defaults: [ | 
|  | "android-non-updatable-doc-stubs-defaults", | 
|  | "module-classpath-stubs-defaults", | 
|  | ], | 
|  | flags: ["--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)"], | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "android-non-updatable-doc-stubs-module-lib", | 
|  | defaults: [ | 
|  | "android-non-updatable-doc-stubs-defaults", | 
|  | "module-classpath-stubs-defaults", | 
|  | ], | 
|  | flags: [ | 
|  | "--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", | 
|  | ], | 
|  | flags: [ | 
|  | "--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 { | 
|  | name: "framework-doc-stubs", | 
|  | defaults: ["android-non-updatable-doc-stubs-defaults"], | 
|  | srcs: [":all-modules-public-stubs-source"], | 
|  | api_levels_module: "api_versions_public", | 
|  | aidl: { | 
|  | include_dirs: [ | 
|  | "packages/modules/Connectivity/framework/aidl-export", | 
|  | "packages/modules/Media/apex/aidl/stable", | 
|  | ], | 
|  | }, | 
|  | } | 
|  |  | 
|  | droidstubs { | 
|  | name: "framework-doc-system-stubs", | 
|  | defaults: ["framework-doc-stubs-sources-default"], | 
|  | flags: ["--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)"], | 
|  | api_levels_module: "api_versions_system", | 
|  | } | 
|  |  | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  | // API docs are created from the generated stub source files | 
|  | // using droiddoc | 
|  | ///////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | doc_defaults { | 
|  | name: "framework-docs-default", | 
|  | sdk_version: "none", | 
|  | system_modules: "none", | 
|  | 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/", | 
|  | lint_baseline: "javadoc-lint-baseline", | 
|  | flags: [ | 
|  | "-android", | 
|  | "-manifest $(location :frameworks-base-core-AndroidManifest.xml)", | 
|  | "-metalavaApiSince", | 
|  | "-werror", | 
|  | "-lerror", | 
|  | "-overview $(location :frameworks-base-java-overview)", | 
|  | // 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)", | 
|  | // doclava contains checks for a few issues that are have been migrated to metalava. | 
|  | // disable them in doclava, to avoid mistriggering or double triggering. | 
|  | "-hide 101", // TODO: turn Lint 101 back into an error again | 
|  | "-hide 111", // HIDDEN_SUPERCLASS | 
|  | "-hide 113", // DEPRECATION_MISMATCH | 
|  | "-hide 125", // REQUIRES_PERMISSION | 
|  | "-hide 126", // BROADCAST_BEHAVIOR | 
|  | "-hide 127", // SDK_CONSTANT | 
|  | "-hide 128", // TODO | 
|  | ], | 
|  | hdf: [ | 
|  | "dac true", | 
|  | "sdk.codename O", | 
|  | "sdk.preview.version 1", | 
|  | "sdk.version 7.0", | 
|  | "sdk.rel.id 1", | 
|  | "sdk.preview 0", | 
|  | ], | 
|  | arg_files: [ | 
|  | ":frameworks-base-core-AndroidManifest.xml", | 
|  | ":frameworks-base-java-overview", | 
|  | ":current-support-api", | 
|  | ":current-androidx-api", | 
|  | ], | 
|  | // TODO(b/169090544): remove below aidl includes. | 
|  | aidl: { | 
|  | include_dirs: [ | 
|  | "frameworks/av/aidl", | 
|  | "frameworks/base/media/aidl", | 
|  | "frameworks/native/libs/permission/aidl", | 
|  | ], | 
|  | }, | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "offline-sdk-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs{.exportable}", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc offline", | 
|  | ], | 
|  | compat_config: ":global-compat-config", | 
|  | proofread_file: "offline-sdk-docs-proofread.txt", | 
|  | flags: [ | 
|  | "-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{.exportable}", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc offline", | 
|  | ], | 
|  | proofread_file: "offline-sdk-referenceonly-docs-proofread.txt", | 
|  | flags: [ | 
|  | "-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", | 
|  | flags: [ | 
|  | "-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: "ds-docs-java", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs{.exportable}", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | "android.hasSamples true", | 
|  | ], | 
|  | proofread_file: "ds-docs-proofread.txt", | 
|  | flags: [ | 
|  | " -toroot /", | 
|  | "-yamlV2", | 
|  | "-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", | 
|  | srcs: [ | 
|  | ":framework-doc-stubs{.exportable}", | 
|  | ], | 
|  | flags: [ | 
|  | "-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{.exportable}", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | ], | 
|  | flags: [ | 
|  | "-staticonly", | 
|  | "-toroot /", | 
|  | "-devsite", | 
|  | "-ignoreJdLinks", | 
|  | ], | 
|  | } | 
|  |  | 
|  | droiddoc { | 
|  | name: "ds-ref-navtree-docs", | 
|  | defaults: ["framework-docs-default"], | 
|  | srcs: [ | 
|  | ":framework-doc-stubs{.exportable}", | 
|  | ], | 
|  | hdf: [ | 
|  | "android.whichdoc online", | 
|  | ], | 
|  | flags: [ | 
|  | "-toroot /", | 
|  | "-atLinksNavtree", | 
|  | "-navtreeonly", | 
|  | ], | 
|  | } |