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

//
// Definitions for building the Android core library and associated tests.
//

// The Android core library provides low-level APIs for use by the rest of the
// Android software stack. It is made up of various parts, some of which can be
// found in libcore/ and other parts that can be found in various external/
// directories.
//
// libcore has some sub-directories that follow a common structure:
// e.g. dalvik, dom, harmony-tests, json, jsr166-tests, luni, libart, ojluni,
// support, xml, xmlpull.
//
// The structure of these is generally:
//
//   src/
//       main/               # To be shipped on every device.
//            java/          # Java source for library code.
//            native/        # C/C++ source for library code.
//            resources/     # Support files.
//       test/               # Built only on demand, for testing.
//            java/          # Java source for tests.
//            native/        # C/C++ source for tests (rare).
//            resources/     # Support files.
//
// All subdirectories are optional.

build = [
    "openjdk_java_files.bp",
    "non_openjdk_java_files.bp",
]

// The Java files and their associated resources.
filegroup {
    name: "core-luni-resources",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "luni/src/main/java/",
    srcs: [
        "luni/src/main/java/java/util/logging/logging.properties",
        "luni/src/main/java/java/security/security.properties",
    ],
}

filegroup {
    name: "core-ojluni-resources",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "ojluni/src/main/resources/",
    srcs: [
        "ojluni/src/main/resources/**/*",
    ],
}

core_resources = [
    ":core-luni-resources",
    ":core-ojluni-resources",
]

// The source files that go into core-oj.
filegroup {
    name: "core_oj_java_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [":openjdk_java_files"],
}

// http://b/129765390, http://b/188966706
// Rewrite links to "platform" or "technotes" folders which are siblings
// (and thus outside of) {@docRoot}.
//
// We have to escape \ as \\ and $ as $$ here because they get resolved by
// different layers of the build tooling. The arguments are wrapped in '' so
// that the shell doesn't add yet another level of escaping.
rewrite_openjdk_doc_links = "sed 's" +
    "!{@docRoot}/\\.\\./\\(\\(platform\\|technotes\\).\\+\\)\">" +
    "!https://docs.oracle.com/javase/8/docs/\\1\">!' " +
    "$(in) > $(out)"

// OpenJDK source is not annotated with @hide so we need this separate
// filegroup for just the parts that contribute to the API.
gensrcs {
    name: "core_oj_api_files",
    cmd: rewrite_openjdk_doc_links,
    srcs: [":openjdk_javadoc_files"],
    output_extension: "java",
}

// The source files that go into core-libart.
filegroup {
    name: "core_libart_java_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [
        ":non_openjdk_java_files",
    ],
}

// Some parts of libart are not annotated with @hide so we need this separate
// filegroup for just the parts that contribute to the API.
filegroup {
    name: "core_libart_api_files",
    srcs: [
        ":non_openjdk_javadoc_files",
    ],
}

// The set of files for the ART module that contribute to one or more API
// surfaces. This includes files that are in the public API as well as those
// that are not but which have been marked up with @hide plus one or more of
// the API defining annotations.
//
// Some source files in :core_oj_api_files and :openjdk_mmodule_extra_files are
// annotated by applying annotations to the .annotated.java stubs files in
// ojluni/annotated/mmodules and rather than in the original source. See the comments
// in openjdk_java_files.bp for more details.
filegroup {
    name: "art_module_api_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [
        ":apache-xml_api_files",
        ":bouncycastle_java_files",
        ":core_oj_api_files",
        ":core_libart_api_files",
        ":okhttp_api_files",
        ":openjdk_mmodule_extra_files",
    ],
}

java_defaults {
    name: "libcore_java_defaults",
    javacflags: [
        //"-Xlint:all",
        //"-Xlint:-serial,-deprecation,-unchecked",
    ],
    dxflags: ["--core-library"],
    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF", // Ignore missing @Override.
            "-Xep:ConstantOverflow:WARN", // Known constant overflow in SplittableRandom
        ],
    },
    min_sdk_version: "31",
}

//
// Build for the target (device).
//

// A target used to bootstrap compilation for the core library.
//
// See core-all-system-modules for more details.
java_library {
    name: "core-all",
    defaults: ["libcore_java_defaults"],

    srcs: [
        // Use the source code for the I18N module intra core API as using the
        // compiled version does not work due to limitations in either soong or the javac
        // toolchain. See http://b/142056316 for more details.
        ":i18n.module.intra.core.api{.public.stubs.source}",
        ":core_oj_java_files",
        ":core_libart_java_files",
        // framework-api-annotations contain API annotations, e.g. @SystemApi.
        ":framework-api-annotations",
        ":openjdk_lambda_stub_files",
        ":openjdk_generated_annotation_stub_files",
        ":app-compat-annotations-source",

        // Use the okhttp source too to allow libcore code to reference it
        // directly.
        ":okhttp_impl_files",
    ],

    sdk_version: "none",
    system_modules: "none",
    patch_module: "java.base",
    openjdk9: {
        srcs: ["luni/src/module/java/module-info.java"],
    },

    java_resources: core_resources,
    java_version: "1.9",

    installable: false,

    plugins: [
        "compat-changeid-annotation-processor",
        "unsupportedappusage-annotation-processor",
    ],
    libs: [
        "conscrypt.module.intra.core.api",
    ],
}

platform_compat_config {
    name: "libcore-platform-compat-config",
    src: ":core-all",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
    ],
}

// A system modules definition for use by core library targets only. It only
// contains the core-all jar, which contains the classes that end up in core-oj,
// core-libart as well as the lambda stubs needed to compile Java lambda code.
// It does not contain other parts of core library like conscrypt, bouncycastle,
// etc. This system_modules definition is used to bootstrap compilation for
// other parts of the core library like core-oj, core-libart, conscrypt,
// bouncycastle, etc. It is also used to compile Libcore tests, as well as ART
// Java tests (run-tests).
java_system_modules {
    name: "core-all-system-modules",

    // Visibility is deliberately restricted to a small set of build modules that
    // the core library team control.
    visibility: [
        "//art/test:__subpackages__",
        "//external/apache-harmony:__subpackages__",
        "//external/apache-xml",
        "//external/okhttp",
        "//libcore:__subpackages__",
    ],

    libs: ["core-all"],
}

// Contains the parts of core library associated with OpenJDK.
java_library {
    name: "core-oj",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
        "//external/wycheproof",
        "//libcore/benchmarks",
        "//packages/modules/ArtPrebuilt",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
    defaults: ["libcore_java_defaults"],
    installable: true,
    hostdex: true,

    srcs: [":core_oj_java_files"],
    java_resources: core_resources,

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    jacoco: {
        exclude_filter: [
            "java.lang.Class",
            "java.lang.Long",
            "java.lang.Number",
            "java.lang.Object",
            "java.lang.String",
            "java.lang.invoke.MethodHandle",
            "java.lang.ref.Reference",
            "java.lang.reflect.Proxy",
            "java.util.AbstractMap",
            "java.util.HashMap",
            "java.util.HashMap$Node",
            "java.util.Map",
        ],
    },

    notice: "ojluni/NOTICE",

    hiddenapi_additional_annotations: [
        "core-oj-hiddenapi-annotations",
    ],
}

// Contains parts of core library not associated with OpenJDK. Contains not
// just java.*, javax.* code but also android.system.* and various internal
// libcore.* packages.
java_library {
    name: "core-libart",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
        "//external/wycheproof",
        "//libcore/benchmarks",
        "//packages/modules/ArtPrebuilt",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
    defaults: ["libcore_java_defaults"],
    installable: true,
    hostdex: true,

    srcs: [":core_libart_java_files"],
    java_version: "1.9",

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    jacoco: {
        exclude_filter: [
            "java.lang.DexCache",
            "dalvik.system.ClassExt",
        ],
    },

    target: {
        hostdex: {
            required: [
                // Files used to simulate the /system, runtime APEX and tzdata
                // APEX dir structure on host.
                "icu_tzdata.dat_host_tzdata_apex",
                "tzdata_host",
                "tzdata_host_tzdata_apex",
                "tzlookup.xml_host_tzdata_apex",
                "tz_version_host",
                "tz_version_host_tzdata_apex",
            ],
        },
        darwin: {
            enabled: false,
        },
    },
}

// Java library for use on host, e.g. by robolectric or layoutlib.
java_library {
    name: "core-libart-for-host",
    visibility: [
        "//art/build/sdk",
        "//external/robolectric-shadows",
        "//frameworks/layoutlib",
    ],
    static_libs: [
        "core-libart",
    ],
    sdk_version: "none",
    system_modules: "none",
}

// Provided solely to contribute information about which hidden parts of the
// core-oj API are used by apps.
//
// Usually, e.g. for core-libart, the UnsupportedAppUsage annotations are
// added to the source that is compiled directly into the bootjar and the build
// system extracts the information about UnsupportedAppUsage directly from
// there.
//
// This approach of having separate annotated source and a separate build
// target was taken for ojluni to avoid having to maintain local patches in the
// ojluni source for UnsupportedAppUsage annotations as that would make it more
// difficult to pull down changes from upstream.
//
java_library {
    name: "core-oj-hiddenapi-annotations",
    // Do not allow this to be accessed from outside this directory.
    visibility: ["//visibility:private"],
    defaults: ["libcore_java_defaults"],
    compile_dex: true,

    srcs: [":openjdk_hiddenapi_javadoc_files"],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",
    plugins: ["unsupportedappusage-annotation-processor"],
}

java_defaults {
    name: "core_lambda_stubs_defaults",
    defaults: ["libcore_java_defaults"],
    hostdex: true,

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    notice: "ojluni/NOTICE",

    installable: false,
    include_srcs: true,
}

// Creates a jar that exists to satisfy javac when compiling source code that
// contains lambdas. This contains all classes / methods required by javac
// when generating invoke-dynamic lambda implementation code, even those that
// are also in the public SDK API from API level 26 onwards.
java_library {
    name: "core-lambda-stubs",
    visibility: ["//visibility:public"],
    defaults: ["core_lambda_stubs_defaults"],
    srcs: [
        ":openjdk_lambda_stub_files",
        ":openjdk_lambda_duplicate_stub_files",
    ],
    // This jar is packaged as part of the SDK, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

// An alternative to core-lambda-stubs that omits openjdk_lambda_duplicate_stub_files
// because those classes are also part of the core library public SDK API
// (since API level 26).
java_library {
    name: "core-lambda-stubs-for-system-modules",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
    ],
    defaults: ["core_lambda_stubs_defaults"],
    srcs: [
        ":openjdk_lambda_stub_files",
    ],
    include_srcs: true,
}

// Creates a jar that exists to satisfy javac when compiling source code that
// contains @Generated annotations, which are produced by some code generation
// tools (notably dagger) but aren't part of the Android API.
// See http://b/123891440.
java_library {
    name: "core-generated-annotation-stubs",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
    ],
    defaults: ["libcore_java_defaults"],
    srcs: [
        ":openjdk_generated_annotation_stub_files",
    ],
    hostdex: true,
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",
    notice: "ojluni/NOTICE",
    installable: false,
    include_srcs: true,
}

// Builds libcore test rules
java_library_static {
    name: "core-test-rules",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/tests/util",
        "//external/conscrypt",
        "//external/conscrypt/apex/tests",
        "//frameworks/base/location/tests/locationtests",
        "//frameworks/base/core/tests/coretests",
        "//frameworks/base/wifi/tests",
        "//packages/modules/Wifi/framework/tests",
    ],
    hostdex: true,
    srcs: [
        "dalvik/test-rules/src/main/**/*.java",
        "test-rules/src/main/**/*.java",
    ],
    static_libs: ["junit"],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
}

// Builds platform_compat test rules
java_library_static {
    name: "core-compat-test-rules",
    visibility: [
        "//art/build/sdk",
        "//frameworks/base/tests/PlatformCompatGating/test-rules",
    ],
    srcs: [
        "luni/src/main/java/android/compat/**/*.java",
        "test-rules/src/platform_compat/**/*.java",
        "luni/src/main/java/libcore/api/CorePlatformApi.java",
        "luni/src/main/java/libcore/api/IntraCoreApi.java",
    ],
    static_libs: [
        "junit",
        "guava",
    ],
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    // This builds classes that are in the java.base Java module:
    patch_module: "java.base",
    hostdex: true,
}

// Builds the core-tests-support library used by various tests.
java_library_static {
    name: "core-tests-support",
    visibility: [
        "//art/build/sdk",
        "//cts/apps/CtsVerifier",
        "//cts/tests/tests/keystore",
        "//cts/tests/tests/net",
        "//cts/tests/tests/net/api23Test",
        "//external/apache-harmony",
        "//frameworks/base/core/tests/coretests",
        "//libcore/benchmarks",
        "//packages/apps/KeyChain/tests",
        "//system/timezone/distro/core",
        "//packages/modules/Connectivity/tests:__subpackages__",
    ],
    hostdex: true,
    srcs: ["support/src/test/java/**/*.java"],

    sdk_version: "core_platform",
    libs: ["junit"],
    static_libs: [
        "bouncycastle-unbundled",
        "bouncycastle-bcpkix-unbundled",
        "bouncycastle-ocsp-unbundled",
    ],
}

// Builds the jsr166-tests library.
java_test {
    name: "jsr166-tests",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/libcore/jsr166",
    ],
    srcs: ["jsr166-tests/src/test/java/**/*.java"],
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "junit",
    ],
}

// A filegroup that provides access to a source file for a toolchain test that
// checks Java 9 language features are handled properly by JarJar.
filegroup {
    name: "core-java-9-language-features-source",
    srcs: ["luni/src/main/java/libcore/internal/Java9LanguageFeatures.java"],
    visibility: ["//libcore/luni/src/test/java9language"],
}

genrule {
    name: "core-tests-smali-dex",
    srcs: ["luni/src/test/java/**/*.smali"],
    cmd: "$(location smali) ass --api 28 -o $(out) $(in)",
    out: ["core-tests-smali.dex"],
    tools: ["smali"],
}

filegroup {
    name: "core-ojtests-javax-resources",
    // Set path to keep the resources and .class files in the same directory in the jar file.
    path: "ojluni/src",
    srcs: ["ojluni/src/test/javax/**/*"],
    exclude_srcs: ["ojluni/src/test/javax/**/*.java"],
}

// Builds the core-tests library.
java_test {
    name: "core-tests",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/libcore/luni",
    ],
    defaults: ["libcore_java_defaults"],
    hostdex: true,
    srcs: [
        "dalvik/src/test/java/**/*.java",
        "dalvik/test-rules/src/test/java/**/*.java",
        "dom/src/test/java/**/*.java",
        "harmony-tests/src/test/java/**/*.java",
        "json/src/test/java/**/*.java",
        "luni/src/test/java/**/*.java",
        "test-rules/src/test/java/**/*.java",
        "xml/src/test/java/**/*.java",
    ],
    exclude_srcs: [
        "harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/*.java",
        "luni/src/test/java/libcore/java/util/zip/Zip64Test.java",
        "luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java",
        "luni/src/test/java/libcore/javax/crypto/**/*.java",
        "luni/src/test/java/libcore/javax/net/ssl/**/*.java",
        "luni/src/test/java/org/apache/harmony/crypto/**/*.java",
    ],

    java_resource_dirs: [
        "*/src/test/java",
        "*/src/test/resources",
    ],
    exclude_java_resource_dirs: [
        "ojluni/src/test/java",
        "ojluni/src/test/javax",
        "ojluni/src/test/resources",
    ],

    java_resources: [
        ":annotations-test",
        ":filesystemstest",
        ":parameter-metadata-test",
        ":core-tests-smali-dex",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "okhttp",
        "bouncycastle",
    ],

    static_libs: [
        "core-compat-test-rules",
        "core-java-9-language-tests",
        "core-test-rules",
        "core-tests-support",
        "junit-params",
        "libcore-crypto-tests",
        "mockftpserver",
        "mockito-target",
        "mockwebserver",
        "nist-pkix-tests",
        "slf4j-jdk14",
        "sqlite-jdbc",
        "truth-prebuilt-jar",
    ],

    errorprone: {
        javacflags: [
            "-Xep:TryFailThrowable:ERROR",
            "-Xep:ComparisonOutOfRange:ERROR",
        ],
    },

    test_config: "AndroidTest-core-tests.xml",
}

java_test {
    name: "libcore-crypto-tests",

    visibility: [
        "//art/build/sdk",
        "//external/conscrypt/apex/tests",
    ],
    srcs: [
        "harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/*.java",
        "luni/src/test/java/libcore/javax/crypto/**/*.java",
        "luni/src/test/java/libcore/javax/net/ssl/**/*.java",
        "luni/src/test/java/libcore/libcore/util/SerializationTester.java",
        "luni/src/test/java/org/apache/harmony/crypto/**/*.java",
    ],

    java_resource_dirs: [
        "luni/src/test/java",
        "luni/src/test/resources",
        "support/src/test/java",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",

    static_libs: [
        "core-test-rules",
        "core-tests-support",
        "junit-params",
        "mockito-target",
    ],
}

// Builds the core-ojtests library that contains test code from OpenJDK.
java_test {
    name: "core-ojtests",
    defaults: ["libcore_java_defaults"],
    hostdex: true,

    srcs: [
        "ojluni/src/test/java/**/*.java",
        "ojluni/src/test/javax/**/*.java",
    ],
    exclude_srcs: [
        "ojluni/src/test/java/lang/invoke/VarHandles/**/*.java",
    ],
    java_resource_dirs: [
        "ojluni/src/test/java",
        "ojluni/src/test/resources",
    ],

    java_resources: [
        ":core-ojtests-javax-resources",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "okhttp",
        "bouncycastle",
    ],

    static_libs: [
        "junit",
        "testng",
    ],

    // ojluni/src/test/java/util/stream/{bootlib,boottest}
    // contains tests that are in packages from java.base;
    // By default, OpenJDK 9's javac will only compile such
    // code if it's declared to also be in java.base at
    // compile time.
    //
    // For now, we use patch_module to put all sources
    // and dependencies from this make target into java.base;
    // other source directories in this make target are in
    // packages not from java.base; if this becomes a problem
    // in future, this could be addressed eg. by splitting
    // boot{lib,test} out into a separate make target,
    // deleting those tests or moving them to a different
    // package.
    patch_module: "java.base",
}

// Builds the core-ojtests-public library. Excludes any private API tests.
// Like core-ojtests but smaller.
java_test {
    name: "core-ojtests-public",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/libcore/ojluni",
    ],
    defaults: ["libcore_java_defaults"],
    srcs: [
        "ojluni/src/test/java/**/*.java",
        "ojluni/src/test/javax/**/*.java",
    ],
    // Filter out the following:
    // 1.) DeserializeMethodTest and SerializedLambdaTest, because they depends on stub classes
    //     and won't actually run, and
    // 2.) util/stream/boot*. Those directories contain classes in the package java.util.stream;
    //     excluding them means we don't need patch_module: "java.base"
    // 3.) java.lang.invoke.VarHandles. A few issues to clear out then address b/203822478.
    exclude_srcs: [
        "**/DeserializeMethodTest.java",
        "**/SerializedLambdaTest.java",
        "ojluni/src/test/java/util/stream/boot*/**/*",
        "ojluni/src/test/java/lang/invoke/VarHandles/**/*.java",
    ],
    java_resource_dirs: [
        "ojluni/src/test/java",
        "ojluni/src/test/resources",
        // Include source code as part of JAR
        "ojluni/src/test/dist",
    ],

    java_resources: [
        ":core-ojtests-javax-resources",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "bouncycastle",
        "junit",
        "okhttp",
        "testng",
    ],
}

// Exports annotated stubs source files in ojluni/annotations/sdk to make them
// available to metalava. Used for nullability annotations in OpenJDK source.
droiddoc_exported_dir {
    name: "ojluni-annotated-sdk-stubs",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "ojluni/annotations/sdk",
}

droiddoc_exported_dir {
    name: "ojluni-annotated-nullability-stubs",
    path: "ojluni/annotations/sdk/nullability",
}

// Exports annotated stubs source files in ojluni/annotations/mmodules to make
// them available to metalava. Used for core platform API and intra-core API
// annotations in OpenJDK source.
droiddoc_exported_dir {
    name: "ojluni-annotated-mmodule-stubs",
    visibility: [
        "//libcore/mmodules/intracoreapi",
    ],
    path: "ojluni/annotations/mmodule",
}

// A file containing the list of tags that are "known" to us from the OpenJdk
// source code and so should not cause an error or warning.
filegroup {
    name: "known-oj-tags",
    visibility: [
        "//frameworks/base",
    ],
    srcs: [
        "known_oj_tags.txt",
    ],
}

// A special set of stubs containing the minimal set of self consistent
// classes for which a system module can be created. Every system module must
// contain the java.lang classes so the set was constructed by starting with
// the java.lang classes and then adding their transitive dependencies without
// splitting packages. So, if one class from a package is used then all classes
// in that package were added to the set.
//
// Needed for java-current-stubs-system-modules.
droidstubs {
    name: "java-current-stubs-source",
    srcs: [
        ":core_oj_api_files",
        ":core_libart_api_files",
    ],
    java_version: "1.9",
    installable: false,
    sdk_version: "none",
    system_modules: "none",

    args: "--stub-packages java.*:javax.*:org.w3c.dom.*:org.xml.sax.*",
}

java_library {
    name: "java.current.stubs",
    srcs: [":java-current-stubs-source"],
    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF",
        ],
    },
    patch_module: "java.base",
    sdk_version: "none",
    system_modules: "none",
}

// A special set of system modules needed to build art.module.public.api
// that contain nullability annotations when targeting java language level 1.9
// and above.
java_system_modules {
    name: "java-current-stubs-system-modules",
    libs: [
        // Minimal set of classes required for a system module.
        "java.current.stubs",

        // The nullability annotations used by the generated stubs.
        "stub-annotations",
    ],
}

// http://b/129765390 Rewrite links to "platform" or "technotes" folders
// which are siblings (and thus outside of) {@docRoot}.
//
// We have to escape \ as \\ and $ as $$ here because they get resolved by
// different layers of the build tooling. The arguments are wrapped in '' so
// that the shell doesn't add yet another level of escaping.
rewrite_openjdk_doc_args = "--replace-documentation " +
    // packages whose descendants to apply replacement to (all packages from
    // libcore/ojluni/src/main/java that contribute to documentation).
    "com.sun:java:javax:jdk.net:sun " +
    // regex of the string to replace
    "'(<a\\s+href\\s?=[\\*\\s]*\")(?:(?:\\{@docRoot\\}/\\.\\./)|(?:(?:\\.\\./)+))((?:platform|technotes).+)\">' " +
    // replacement (with $1, $2 backreferences to the regex groups)
    "'$$1https://docs.oracle.com/javase/8/docs/$$2\">' "

java_library {
    name: "framework-api-annotations-lib",
    srcs: [":framework-api-annotations"],
    sdk_version: "none",
    patch_module: "java.base",
    system_modules: "core-all-system-modules",
    installable: false,
    visibility: [
        "//visibility:private",
    ],
}

// Define the public SDK API provided by the ART module.
java_sdk_library {
    name: "art.module.public.api",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
        "//frameworks/base",
        "//frameworks/base/api",
    ],
    srcs: [
        ":core_oj_api_files",
        ":core_libart_api_files",

        // Some source files in :core_oj_api_files and :openjdk_mmodule_extra_files are
        // annotated by applying annotations to the .annotated.java stubs files in
        // ojluni/annotated/mmodules and rather than in the original source. See the comments
        // in openjdk_java_files.bp for more details.
        ":openjdk_mmodule_extra_files",
        ":okhttp_api_files",

    ],
    libs: [
        // Put framework-api-annotations into libs to avoid exposing the definition of framework's
        // annotations from libcore (wrong place) instead of framework (correct place).
        "framework-api-annotations-lib",
        // Provide access to I18N constants that are used to initialize
        // constants in the public API. i.e. to allow the value of the
        // java.text.CollectionElementIterator.NULLORDER to be initialized from
        // android.icu.text.CollationElementIterator.NULLORDER.
        "i18n.module.intra.core.api.stubs",
    ],
    stub_only_static_libs: ["notices-for-stubs-jar"],
    java_version: "1.9",

    // Make dex jars for the stubs available for use by hiddenapi processing.
    compile_dex: true,

    public: {
        enabled: true,
    },
    system: {
        enabled: true,
    },
    module_lib: {
        enabled: true,
    },

    api_only: true,
    droiddoc_options: [
        rewrite_openjdk_doc_args,
        "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.* ",
        "--hide-annotation libcore.api.Hide",
    ],

    merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"],
    // Emit nullability annotations from the source to the stub files.
    annotations_enabled: true,

    merge_annotations_dirs: [
        "metalava-manual",
        "ojluni-annotated-sdk-stubs",
    ],

    doctag_files: [
        ":known-oj-tags",
    ],

    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF",
        ],
    },
    patch_module: "java.base",
    sdk_version: "none",
    system_modules: "java-current-stubs-system-modules",
    // The base name for the artifacts that are automatically published to the
    // dist and which end up in one of the sub-directories of prebuilts/sdk.
    // As long as this matches the name of the artifacts in prebuilts/sdk then
    // the API will be checked for compatibility against the latest released
    // version of the API.
    dist_stem: "art",
    dist_group: "android",
}

// Used when compiling higher-level code against art.module.public.api.stubs.
//
// This is only intended for use within core libraries and must not be used
// from outside.
java_system_modules {
    name: "art-module-public-api-stubs-system-modules",
    visibility: [
        "//art/build/sdk",
        "//external/conscrypt",
        "//external/icu/android_icu4j",
        "//external/wycheproof",
    ],
    libs: [
        "art.module.public.api.stubs",
        // This one is not on device but it's needed when javac compiles code
        // containing lambdas.
        "core-lambda-stubs-for-system-modules",
        // This one is not on device but it's needed when javac compiles code
        // containing @Generated annotations produced by some code generation
        // tools.
        // See http://b/123891440.
        "core-generated-annotation-stubs",

        // Ensure that core libraries that depend on the public API can access
        // the UnsupportedAppUsage, CorePlatformApi and IntraCoreApi
        // annotations.
        "art.module.api.annotations.for.system.modules",

        // Make nullability annotations available when compiling public stubs.
        // They are provided as a separate library because while the
        // annotations are not themselves part of the public API provided by
        // this module they are used in the stubs.
        "stub-annotations",
    ],
}

// Used when compiling higher-level code against art.module.public.api.stubs.module_lib.
//
// This is only intended for use within core libraries and must not be used
// from outside.
java_system_modules {
    name: "art-module-lib-api-stubs-system-modules",
    visibility: [
        "//art/build/sdk",
        "//external/conscrypt",
        "//external/icu/android_icu4j",
    ],
    libs: [
        "art.module.public.api.stubs.module_lib",
    ],
}

// Target for validating nullability annotations for correctness and
// completeness. To check that there are no nullability errors:
//   m art-module-public-api-stubs-nullability-validation
// To check that there are only the expected nullability warnings:
//   m art-module-public-api-stubs-nullability-validation-check-nullability-warnings
// (If that check fails, it will provide instructions on how to proceed,
// including the command to run to update the expected warnings file.)
droidstubs {
    name: "art-module-public-api-stubs-nullability-validation",
    srcs: [":art_module_api_files"],
    installable: false,
    sdk_version: "none",
    system_modules: "none",
    annotations_enabled: true,
    args: "--hide-annotation libcore.api.Hide " +
        "--validate-nullability-from-merged-stubs ",
    merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"],
    merge_annotations_dirs: [
        // N.B. Stubs in this filegroup will be validated:
        "ojluni-annotated-nullability-stubs",
    ],
    // The list of classes which have nullability annotations included in the source.
    // (This is in addition to those which have annotations in the merged stubs.)
    validate_nullability_from_list: "nullability_annotated_classes.txt",
    // The expected set of warnings about missing annotations:
    check_nullability_warnings: "nullability_warnings.txt",
}

// A special set of system modules for building the following library for use
// in the art-module-public-api-system-modules.
java_system_modules {
    name: "api-annotations-system-modules",
    libs: [
        "art.module.public.api.stubs",
    ],
}

// A library that contains annotations that define API surfaces (core
// platform, intra core and the hidden API) along with some supporting
// constants. The annotations are source only and do not introduce any runtime
// dependencies. Specially built for use in system modules definitions to
// avoid introducing compile time cycles.
java_library {
    name: "art.module.api.annotations.for.system.modules",
    visibility: [
        "//art/libartservice",
    ],
    srcs: [
        ":api_surface_annotation_files",
    ],

    installable: false,
    sdk_version: "none",
    system_modules: "api-annotations-system-modules",
    patch_module: "java.base",
}

// Create a library containing the api surface annotations, built against
// core_current for use by the annotation processor in frameworks/base.
java_library {
    name: "art.module.api.annotations",
    visibility: [
        "//art/build/sdk",
        "//external/icu/android_icu4j",
        "//frameworks/base",
    ],
    host_supported: true,
    srcs: [
        ":api_surface_annotation_files",
    ],
    java_version: "1.9",
    sdk_version: "core_current",
}
