blob: 5cff4725cba1ddf21d32bd560004c5d0acbf8b30 [file] [log] [blame]
// 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",
],
}