Skip to content
Snippets Groups Projects
  • Paul Duffin's avatar
    bf48c955
    Use tags to access conscrypt sources · bf48c955
    Paul Duffin authored
    Avoids direct access to the stub sources and instead access them via
    tags passed to the java_sdk_library.
    
    Bug: 155164730
    Test: m checkapi
    Merged-In: I93dfb8bfac60bd7ab628292667c8d7a9d5e8eb82
    Change-Id: I93dfb8bfac60bd7ab628292667c8d7a9d5e8eb82
    (cherry picked from commit e55d4e3b)
    bf48c955
    History
    Use tags to access conscrypt sources
    Paul Duffin authored
    Avoids direct access to the stub sources and instead access them via
    tags passed to the java_sdk_library.
    
    Bug: 155164730
    Test: m checkapi
    Merged-In: I93dfb8bfac60bd7ab628292667c8d7a9d5e8eb82
    Change-Id: I93dfb8bfac60bd7ab628292667c8d7a9d5e8eb82
    (cherry picked from commit e55d4e3b)
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ApiDocs.bp 13.61 KiB
// 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",
]

stubs_defaults {
    name: "framework-doc-stubs-default",
    srcs: [
        ":framework-mime-sources",
        ":framework-non-updatable-sources",
        ":framework-updatable-sources",
        "core/java/**/*.logtags",
        "test-base/src/**/*.java",
        ":opt-telephony-srcs",
        ":opt-net-voip-srcs",
        ":art-module-public-api-stubs-source",
        ":conscrypt.module.public.api{.public.stubs.source}",
        ":android_icu4j_public_api_files",
        "test-mock/src/**/*.java",
        "test-runner/src/**/*.java",
    ],
    libs: framework_docs_only_libs,
    create_doc_stubs: true,
    annotations_enabled: true,
    api_levels_annotations_enabled: true,
    api_levels_annotations_dirs: [
        "sdk-dir",
        "api-versions-jars-dir",
    ],
    previous_api: ":android.api.public.latest",
    merge_annotations_dirs: [
        "metalava-manual",
    ],
}

droidstubs {
    name: "framework-doc-stubs",
    defaults: ["framework-doc-stubs-default"],
    arg_files: [
        "core/res/AndroidManifest.xml",
    ],
    args: metalava_framework_docs_args,
    write_sdk_values: true,
}

droidstubs {
    name: "framework-doc-system-stubs",
    defaults: ["framework-doc-stubs-default"],
    arg_files: [
        "core/res/AndroidManifest.xml",
    ],
    args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) ",
    write_sdk_values: true,
}

/////////////////////////////////////////////////////////////////////
// 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",
        ":known-oj-tags",
    ],
    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",
    ],
    create_stubs: false,
}

doc_defaults {
    name: "framework-dokka-docs-default",
    create_stubs: false,
}

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-proofrerad.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-proofrerad.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-proofrerad.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-proofrerad.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-proofrerad.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-proofrerad.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 $(location :ds-docs-java{.docs.zip}) -d $(genDir) && " +
         "unzip $(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) && " +
         "$(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",
    ],
    proofread_file: "ds-static-docs-proofrerad.txt",
    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",
    ],
    proofread_file: "ds-ref-navtree-docs-proofrerad.txt",
    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-proofrerad.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-proofrerad.txt",
    args: framework_docs_only_args +
        " -referenceonly " +
        " -title \"Android SDK - Including hidden APIs.\"",
}