// Copyright (C) 2020 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.

package {
    default_visibility: ["//visibility:private"],
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    //   SPDX-license-identifier-MIT
    //   SPDX-license-identifier-Unicode-DFS
    default_applicable_licenses: ["frameworks_base_license"],
}

bootstrap_go_package {
    name: "soong-api",
    pkgPath: "android/soong/api",
    deps: [
        "blueprint",
        "blueprint-proptools",
        "soong",
        "soong-android",
        "soong-genrule",
        "soong-java",
    ],
    srcs: ["api.go"],
    testSrcs: ["api_test.go"],
    pluginFor: ["soong_build"],
}

python_binary_host {
    name: "merge_annotation_zips",
    srcs: ["merge_annotation_zips.py"],
}

python_test_host {
    name: "merge_annotation_zips_test",
    main: "merge_annotation_zips_test.py",
    srcs: [
        "merge_annotation_zips.py",
        "merge_annotation_zips_test.py",
    ],
    test_options: {
        unit_test: true,
    },
}

metalava_cmd = "$(location metalava)"
// Silence reflection warnings. See b/168689341
metalava_cmd += " -J--add-opens=java.base/java.util=ALL-UNNAMED "
metalava_cmd += " --quiet "

combined_apis {
    name: "frameworks-base-api",
    bootclasspath: [
        "android.net.ipsec.ike",
        "art.module.public.api",
        "conscrypt.module.public.api",
        "framework-adservices",
        "framework-appsearch",
        "framework-bluetooth",
        "framework-configinfrastructure",
        "framework-connectivity",
        "framework-connectivity-b",
        "framework-connectivity-t",
        "framework-devicelock",
        "framework-graphics",
        "framework-healthfitness",
        "framework-location",
        "framework-media",
        "framework-mediaprovider",
        "framework-nfc",
        "framework-ondevicepersonalization",
        "framework-pdf",
        "framework-pdf-v",
        "framework-permission",
        "framework-permission-s",
        "framework-profiling",
        "framework-photopicker",
        "framework-scheduling",
        "framework-sdkextensions",
        "framework-statsd",
        "framework-sdksandbox",
        "framework-tethering",
        "framework-uwb",
        "framework-virtualization",
        "framework-wifi",
        "i18n.module.public.api",
    ] + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), {
        "true": [
            "framework-crashrecovery",
        ],
        default: [
            "framework-platformcrashrecovery",
        ],
    }) + select(release_flag("RELEASE_RANGING_STACK"), {
        true: [
            "framework-ranging",
        ],
        default: [],
    }),
    system_server_classpath: [
        "service-art",
        "service-configinfrastructure",
        "service-healthfitness",
        "service-media-s",
        "service-permission",
        "service-rkp",
        "service-sdksandbox",
    ] + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), {
        "true": [
            "service-crashrecovery",
        ],
        default: [],
    }),
}

// Create a single file containing the latest released version of the whole
// Android public API.
java_genrule {
    name: "android.api.merged.public.latest",
    srcs: [
        ":android.api.combined.public.latest",
    ],
    out: ["public-latest.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)",
}

// Make sure that the Android public API is compatible with the
// previously released public API.
java_genrule {
    name: "frameworks-base-api-current-compat",
    srcs: [
        ":android.api.merged.public.latest",
        ":android-incompatibilities.api.public.latest",
        ":frameworks-base-api-current.txt",
    ],
    out: ["updated-baseline.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd +
        "--check-compatibility:api:released $(location :android.api.merged.public.latest) " +
        "--baseline:compatibility:released $(location :android-incompatibilities.api.public.latest) " +
        "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
        "$(location :frameworks-base-api-current.txt)",
}

// Create a single file containing the latest released version of the whole
// Android system API.
java_genrule {
    name: "android.api.merged.system.latest",
    srcs: [
        ":android.api.combined.system.latest",
    ],
    out: ["system-latest.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)",
}

// Make sure that the Android system API is compatible with the
// previously released system API.
java_genrule {
    name: "frameworks-base-api-system-current-compat",
    srcs: [
        ":android.api.merged.system.latest",
        ":android-incompatibilities.api.system.latest",
        ":frameworks-base-api-current.txt",
        ":frameworks-base-api-system-current.txt",
    ],
    out: ["updated-baseline.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd +
        "--check-compatibility:api:released $(location :android.api.merged.system.latest) " +
        "--baseline:compatibility:released $(location :android-incompatibilities.api.system.latest) " +
        "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
        "$(location :frameworks-base-api-current.txt) " +
        "$(location :frameworks-base-api-system-current.txt)",
}

// Create a single file containing the latest released version of the whole
// Android module-lib API.
java_genrule {
    name: "android.api.merged.module-lib.latest",
    srcs: [
        ":android.api.combined.module-lib.latest",
    ],
    out: ["module-lib-latest.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)",
}

// Make sure that the Android module-lib API is compatible with the
// previously released module-lib API.
java_genrule {
    name: "frameworks-base-api-module-lib-current-compat",
    srcs: [
        ":android.api.merged.module-lib.latest",
        ":android-incompatibilities.api.module-lib.latest",
        ":frameworks-base-api-current.txt",
        ":frameworks-base-api-system-current.txt",
        ":frameworks-base-api-module-lib-current.txt",
    ],
    out: ["updated-baseline.txt"],
    tools: ["metalava"],
    cmd: metalava_cmd +
        "--check-compatibility:api:released $(location :android.api.merged.module-lib.latest) " +
        "--baseline:compatibility:released $(location :android-incompatibilities.api.module-lib.latest) " +
        "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
        "$(location :frameworks-base-api-current.txt) " +
        "$(location :frameworks-base-api-system-current.txt) " +
        "$(location :frameworks-base-api-module-lib-current.txt)",
}

java_genrule {
    name: "frameworks-base-api-current.srcjar",
    tools: ["merge_zips"],
    out: ["current.srcjar"],
    cmd: "$(location merge_zips) $(out) $(in)",
    srcs: [
        ":api-stubs-docs-non-updatable{.exportable}",
        ":all-modules-public-stubs-source-exportable",
    ],
    visibility: ["//visibility:private"], // Used by make module in //development, mind
}

// This produces the same annotations.zip as framework-doc-stubs, but by using
// outputs from individual modules instead of all the source code.
genrule_defaults {
    name: "sdk-annotations-defaults",
    out: ["annotations.zip"],
    tools: [
        "merge_annotation_zips",
        "soong_zip",
    ],
    cmd: "$(location merge_annotation_zips) $(genDir)/out $(in) && " +
        "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out",
}

java_genrule {
    name: "sdk-annotations.zip",
    defaults: ["sdk-annotations-defaults"],
    srcs: [
        ":android-non-updatable-doc-stubs{.exportable.annotations.zip}",
        ":all-modules-public-annotations",
    ],
}

java_genrule {
    name: "sdk-annotations-system.zip",
    defaults: ["sdk-annotations-defaults"],
    srcs: [
        ":android-non-updatable-doc-stubs-system{.exportable.annotations.zip}",
        ":all-modules-system-annotations",
    ],
}

java_genrule {
    name: "sdk-annotations-module-lib.zip",
    defaults: ["sdk-annotations-defaults"],
    srcs: [
        ":android-non-updatable-doc-stubs-module-lib{.exportable.annotations.zip}",
        ":all-modules-module-lib-annotations",
    ],
}

java_genrule {
    name: "sdk-annotations-system-server.zip",
    defaults: ["sdk-annotations-defaults"],
    srcs: [
        ":android-non-updatable-doc-stubs-system-server{.exportable.annotations.zip}",
        ":all-modules-system-server-annotations",
    ],
}

java_genrule {
    name: "combined-removed-dex",
    visibility: [
        "//frameworks/base/boot",
    ],
    srcs: [
        ":frameworks-base-api-removed.txt",
        ":frameworks-base-api-system-removed.txt",
        ":android.car-stubs-docs{.removed-api.txt}",
        ":android.car-system-stubs-docs{.removed-api.txt}",
    ],
    tool_files: ["gen_combined_removed_dex.sh"],
    tools: ["metalava"],
    out: ["combined-removed-dex.txt"],
    cmd: "$(location gen_combined_removed_dex.sh) $(location metalava) $(genDir) $(in) > $(out)",
}

java_genrule {
    name: "api_fingerprint",
    srcs: [
        ":frameworks-base-api-current.txt",
        ":frameworks-base-api-system-current.txt",
        ":frameworks-base-api-module-lib-current.txt",
        ":frameworks-base-api-system-server-current.txt",
    ],
    out: ["api_fingerprint.txt"],
    cmd: "cat $(in) | md5sum | cut -d' ' -f1 > $(out)",
}

packages_to_document = [
    "android",
    "dalvik",
    "java",
    "javax",
    "junit",
    "org.apache.http",
    "org.json",
    "org.w3c.dom",
    "org.xml.sax",
    "org.xmlpull",
]

// These are libs from framework-internal-utils that are required (i.e. being referenced)
// from framework-non-updatable-sources. Add more here when there's a need.
// DO NOT add the entire framework-internal-utils. It might cause unnecessary circular
// dependencies when the list gets bigger.
android_non_updatable_stubs_libs = [
    "android.hardware.cas-V1.2-java",
    "android.hardware.health-V1.0-java-constants",
    "android.hardware.thermal-V1.0-java-constants",
    "android.hardware.thermal-V2.0-java",
    "android.hardware.tv.input-V1.0-java-constants",
    "android.hardware.usb-V1.0-java-constants",
    "android.hardware.usb-V1.1-java-constants",
    "android.hardware.usb.gadget-V1.0-java",
    "android.hardware.vibrator-V1.3-java",
    "framework-protos",
]

java_defaults {
    name: "android-non-updatable-stubs-libs-defaults",
    libs: android_non_updatable_stubs_libs,
}

// Defaults for all stubs that include the non-updatable framework. These defaults do not include
// module symbols, so will not compile correctly on their own. Users must add module APIs to the
// classpath (or sources) somehow.
stubs_defaults {
    name: "android-non-updatable-stubs-defaults",
    aconfig_declarations: ["framework-minus-apex-aconfig-declarations"],
    srcs: [":android-non-updatable-stub-sources"],
    sdk_version: "none",
    system_modules: "none",
    java_version: "1.8",
    arg_files: [":frameworks-base-core-AndroidManifest.xml"],
    aidl: {
        include_dirs: [
            "frameworks/av/aidl",
            "frameworks/base/media/aidl",
            "frameworks/base/telephony/java",
            "frameworks/native/libs/permission/aidl",
            "packages/modules/Bluetooth/framework/aidl-export",
            "packages/modules/Connectivity/framework/aidl-export",
            "packages/modules/Media/apex/aidl/stable",
            "hardware/interfaces/biometrics/common/aidl",
            "hardware/interfaces/biometrics/fingerprint/aidl",
            "hardware/interfaces/common/aidl",
            "hardware/interfaces/common/fmq/aidl",
            "hardware/interfaces/graphics/common/aidl",
            "hardware/interfaces/keymaster/aidl",
            "hardware/interfaces/power/aidl",
            "system/hardware/interfaces/media/aidl",
        ],
    },
    // These are libs from framework-internal-utils that are required (i.e. being referenced)
    // from framework-non-updatable-sources. Add more here when there's a need.
    // DO NOT add the entire framework-internal-utils. It might cause unnecessary circular
    // dependencies gets bigger.
    libs: android_non_updatable_stubs_libs,
    flags: [
        "--error NoSettingsProvider",
        "--error UnhiddenSystemApi",
        "--error UnflaggedApi",
        "--error FlaggedApiLiteral",
        "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.*",
        // Disable CallbackInterface, as Java 8 default interface methods avoid the extensibility
        // issue interfaces had previously.
        "--hide CallbackInterface",
        // Disable HiddenSuperclass, as Metalava handles this fine (it should be hidden by default)
        "--hide HiddenSuperclass",
        "--manifest $(location :frameworks-base-core-AndroidManifest.xml)",
    ],
    filter_packages: packages_to_document,
    high_mem: true, // Lots of sources => high memory use, see b/170701554
    installable: false,
    annotations_enabled: true,
    merge_annotations_dirs: ["metalava-manual"],
    defaults_visibility: ["//frameworks/base/api"],
    visibility: [
        "//frameworks/base/api",
        "//frameworks/base/core/api",
    ],
}

soong_config_module_type {
    name: "non_updatable_exportable_droidstubs",
    module_type: "droidstubs",
    config_namespace: "ANDROID",
    bool_variables: [
        "release_hidden_api_exportable_stubs",
    ],
    properties: [
        "dists",
    ],
}

// We resolve dependencies on APIs in modules by depending on a prebuilt of the whole
// platform (sdk_system_current_android). That prebuilt does not include module-lib APIs,
// so use the prebuilt module-lib stubs for modules that export module-lib stubs that the
// non-updatable part depends on.
non_updatable_api_deps_on_modules = [
    "sdk_module-lib_current_framework-tethering",
    "sdk_module-lib_current_framework-connectivity-t",
    "sdk_system_current_android",
]

java_defaults {
    name: "module-classpath-java-defaults",
    libs: non_updatable_api_deps_on_modules,
}

// Defaults with module APIs in the classpath (mostly from prebuilts).
// Suitable for compiling android-non-updatable.
stubs_defaults {
    name: "module-classpath-stubs-defaults",
    aidl: {
        include_dirs: [
            "packages/modules/Bluetooth/framework/aidl-export",
            "packages/modules/Connectivity/framework/aidl-export",
            "packages/modules/Media/apex/aidl/stable",
        ],
    },
    libs: non_updatable_api_deps_on_modules,
}

// Defaults for the java_sdk_libraries of unbundled jars from framework.
// java_sdk_libraries using these defaults should also add themselves to the
// non_updatable_modules list in frameworks/base/api/api.go
java_defaults {
    name: "framework-non-updatable-unbundled-defaults",
    defaults: [
        "framework-non-updatable-lint-defaults",
        "non-updatable-framework-module-defaults",
    ],
    public: {
        libs: ["android_module_lib_stubs_current"],
    },
    system: {
        libs: ["android_module_lib_stubs_current"],
    },
    module_lib: {
        libs: ["android_module_lib_stubs_current"],
    },
    test: {
        libs: ["android_test_frameworks_core_stubs_current"],
    },
    sdk_version: "core_platform",
    stub_only_libs: ["framework-protos"],
    impl_only_libs: ["framework-minus-apex-headers"], // the framework, including hidden API
    impl_library_visibility: ["//frameworks/base"],
    defaults_visibility: [
        "//frameworks/base/location",
        "//frameworks/base/packages/CrashRecovery/framework",
        "//frameworks/base/nfc",
    ],
    plugins: ["error_prone_android_framework"],
    errorprone: {
        javacflags: [
            "-Xep:AndroidFrameworkCompatChange:ERROR",
            "-Xep:AndroidFrameworkUid:ERROR",
        ],
    },
    // Include manual annotations in API txt files
    merge_annotations_dirs: ["metalava-manual"],
}

build = [
    "ApiDocs.bp",
    "StubLibraries.bp",
]

genrule_defaults {
    name: "flag-api-mapping-generation-defaults",
    cmd: "$(location extract-flagged-apis) $(in) $(out)",
    tools: ["extract-flagged-apis"],
}

java_genrule {
    name: "flag-api-mapping-PublicApi",
    defaults: ["flag-api-mapping-generation-defaults"],
    srcs: [":frameworks-base-api-current.txt"],
    out: ["flag_api_map.textproto"],
    dist: {
        targets: ["droid"],
    },
}

java_genrule {
    name: "flag-api-mapping-SystemApi",
    defaults: ["flag-api-mapping-generation-defaults"],
    srcs: [":frameworks-base-api-system-current.txt"],
    out: ["system_flag_api_map.textproto"],
    dist: {
        targets: ["droid"],
    },
}

java_genrule {
    name: "flag-api-mapping-ModuleLibApi",
    defaults: ["flag-api-mapping-generation-defaults"],
    srcs: [":frameworks-base-api-module-lib-current.txt"],
    out: ["module_lib_flag_api_map.textproto"],
    dist: {
        targets: ["droid"],
    },
}

java_genrule {
    name: "flag-api-mapping-SystemServerApi",
    defaults: ["flag-api-mapping-generation-defaults"],
    srcs: [":frameworks-base-api-system-server-current.txt"],
    out: ["system_server_flag_api_map.textproto"],
    dist: {
        targets: ["droid"],
    },
}

phony_rule {
    name: "checkapi",
    phony_deps: [
        "frameworks-base-api-current-compat",
        "frameworks-base-api-system-current-compat",
        "frameworks-base-api-module-lib-current-compat",
    ],
}
