| // 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", |
| ], |
| } |