| // 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. See the "core-system-modules" definition for the parts. | 
 |  | 
 | // 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. | 
 | core_resource_dirs = [ | 
 |     "luni/src/main/java", | 
 |     "ojluni/src/main/resources/", | 
 | ] | 
 |  | 
 | // The source files that go into core-oj. | 
 | filegroup { | 
 |     name: "core_oj_java_files", | 
 |     srcs: [":openjdk_java_files"], | 
 | } | 
 |  | 
 | // OpenJDK source is not annotated with @hide so we need this separate | 
 | // filegroup for just the parts that contribute to the API. | 
 | filegroup { | 
 |     name: "core_oj_api_files", | 
 |     srcs: [":openjdk_javadoc_files"], | 
 | } | 
 |  | 
 | // The source files that go into core-libart. | 
 | filegroup { | 
 |     name: "core_libart_java_files", | 
 |     srcs: [ | 
 |         ":non_openjdk_java_files", | 
 |         ":android_icu4j_src_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", | 
 |         ":android_icu4j_src_files", | 
 |     ], | 
 | } | 
 |  | 
 | // The set of files for the core library that have been marked up with @hide | 
 | // for the public SDK APIs. Used from frameworks/base/ to indicate the source | 
 | // files for inclusion in the public SDK docs. | 
 | filegroup { | 
 |     name: "core_public_api_files", | 
 |     srcs: [ | 
 |         ":core_oj_api_files", | 
 |         ":core_libart_api_files", | 
 |         ":conscrypt_public_api_files", | 
 |     ], | 
 | } | 
 |  | 
 | // The set of files for the core library that have been marked up with @hide and | 
 | // API-related annotations. Note that this includes the intra-core and | 
 | // core-platform APIs as well as the public APIs. | 
 | // | 
 | // 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: "core_api_files", | 
 |     srcs: [ | 
 |         ":apache-xml_api_files", | 
 |         ":bouncycastle_java_files", | 
 |         ":conscrypt_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 | 
 |         ], | 
 |     }, | 
 | } | 
 |  | 
 | // | 
 | // Build for the target (device). | 
 | // | 
 |  | 
 | // Rule generating resource lib for android_icu4j. | 
 | // In the downstream branch master-icu-dev, the resource files are generated. | 
 | // This rule can't be moved external/icu because soong enforces that no_standard_libs:true can only | 
 | // be used in libcore/ or development/ | 
 | java_library { | 
 |     name: "android_icu4j_resources_lib", | 
 |     java_resources: [":android_icu4j_resources"], | 
 |     no_standard_libs: true, | 
 |     system_modules: "none", | 
 | } | 
 |  | 
 | // 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: [ | 
 |         ":core_oj_java_files", | 
 |         ":core_libart_java_files", | 
 |         ":openjdk_lambda_stub_files", | 
 |     ], | 
 |  | 
 |     no_standard_libs: true, | 
 |     system_modules: "none", | 
 |     openjdk9: { | 
 |         srcs: ["luni/src/module/java/module-info.java"], | 
 |         javacflags: ["--patch-module=java.base=."], | 
 |     }, | 
 |  | 
 |     java_resource_dirs: core_resource_dirs, | 
 |     static_libs: ["android_icu4j_resources_lib"], | 
 |     java_version: "1.9", | 
 |  | 
 |     installable: false, | 
 | } | 
 |  | 
 | // 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. | 
 | // | 
 | // If you want to compile against the entire core library implementation, for | 
 | // example to build core library tests, see "core-system-modules" instead. | 
 | java_system_modules { | 
 |     name: "core-all-system-modules", | 
 |     libs: ["core-all"], | 
 | } | 
 |  | 
 | // Contains the parts of core library associated with OpenJDK. | 
 | java_library { | 
 |     name: "core-oj", | 
 |     defaults: ["libcore_java_defaults"], | 
 |     installable: true, | 
 |     hostdex: true, | 
 |  | 
 |     srcs: [":core_oj_java_files"], | 
 |     java_resource_dirs: core_resource_dirs, | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     openjdk9: { | 
 |         javacflags: ["--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", | 
 |  | 
 | } | 
 |  | 
 | // Contains parts of core library not associated with OpenJDK. Contains not | 
 | // just java.*, javax.* code but also android.icu.*, android.system.* and | 
 | // various internal libcore.* packages. | 
 | java_library { | 
 |     name: "core-libart", | 
 |     defaults: ["libcore_java_defaults"], | 
 |     installable: true, | 
 |     hostdex: true, | 
 |  | 
 |     srcs: [":core_libart_java_files"], | 
 |     static_libs: ["android_icu4j_resources_lib"], | 
 |     java_version: "1.9", | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     openjdk9: { | 
 |         javacflags: ["--patch-module=java.base=."], | 
 |     }, | 
 |  | 
 |     jacoco: { | 
 |         exclude_filter: [ | 
 |             "java.lang.DexCache", | 
 |             "dalvik.system.ClassExt", | 
 |         ], | 
 |     }, | 
 |  | 
 |     required: [ | 
 |         // Device files put in /system. | 
 |         "tzdata", | 
 |         "tz_version", | 
 |         // Files used to simulate the /system and runtime APEX dir | 
 |         // structure on host. | 
 |         "tzdata_host", | 
 |         "tzdata_host_runtime_apex", | 
 |         "tzlookup.xml_host_runtime_apex", | 
 |         "tz_version_host", | 
 |         "tz_version_host_runtime_apex", | 
 |     ], | 
 | } | 
 |  | 
 | // Provided solely to contribute information about which hidden parts of the | 
 | // core-oj API are used by apps. | 
 | java_library { | 
 |     name: "core-oj-hiddenapi", | 
 |     defaults: ["libcore_java_defaults"], | 
 |     compile_dex: true, | 
 |  | 
 |     srcs: [":openjdk_hiddenapi_javadoc_files"], | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     openjdk9: { | 
 |         javacflags: ["--patch-module=java.base=."], | 
 |     }, | 
 | } | 
 |  | 
 | // | 
 | // Guaranteed unstripped versions of core-oj and core-libart. | 
 | // | 
 | // The build system may or may not strip the core-oj and core-libart jars, | 
 | // but these will not be stripped. See b/24535627. | 
 | // | 
 |  | 
 | java_library { | 
 |     name: "core-oj-testdex", | 
 |     installable: true, | 
 |     static_libs: ["core-oj"], | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     dxflags: ["--core-library"], | 
 |     dex_preopt: { | 
 |         enabled: false, | 
 |     }, | 
 |     java_version: "1.9", | 
 |     notice: "ojluni/NOTICE", | 
 | } | 
 |  | 
 | java_library { | 
 |     name: "core-libart-testdex", | 
 |     installable: true, | 
 |     static_libs: ["core-libart"], | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     dxflags: ["--core-library"], | 
 |     dex_preopt: { | 
 |         enabled: false, | 
 |     }, | 
 |     notice: "ojluni/NOTICE", | 
 | } | 
 |  | 
 |  | 
 | java_defaults { | 
 |     name: "core_lambda_stubs_defaults", | 
 |     defaults: ["libcore_java_defaults"], | 
 |     hostdex: true, | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 |     openjdk9: { | 
 |         javacflags: ["--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", | 
 |     defaults: ["core_lambda_stubs_defaults"], | 
 |     srcs: [ | 
 |         ":openjdk_lambda_stub_files", | 
 |         ":openjdk_lambda_duplicate_stub_files", | 
 |     ], | 
 | } | 
 |  | 
 | // 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", | 
 |     defaults: ["core_lambda_stubs_defaults"], | 
 |     srcs: [ | 
 |         ":openjdk_lambda_stub_files", | 
 |     ], | 
 | } | 
 |  | 
 | // A system modules definition containing the implementations for the various | 
 | // parts that make up the core library. | 
 | // | 
 | // This system module is intended for use by tests that may need access to | 
 | // core library internals. It should not be generally used; most of the | 
 | // platform build should build against API stubs instead. See | 
 | // "core-platform-api-stubs-system-modules", which is the default used by the | 
 | // Android build. | 
 | // | 
 | // This module also includes lambda stubs for compiling source containing | 
 | // Java lambdas. | 
 | java_system_modules { | 
 |     name: "core-system-modules", | 
 |     libs: [ | 
 |         "core-oj", | 
 |         "core-libart", | 
 |         "bouncycastle", | 
 |         "conscrypt", | 
 |         "okhttp", | 
 |         "apache-xml", | 
 |         // This one is not on device but it's needed when javac compiles code | 
 |         // containing lambdas. | 
 |         "core-lambda-stubs-for-system-modules", | 
 |     ], | 
 | } | 
 |  | 
 | // Builds libcore test rules | 
 | java_library_static { | 
 |     name: "core-test-rules", | 
 |     hostdex: true, | 
 |     srcs: [ | 
 |         "dalvik/test-rules/src/main/**/*.java", | 
 |         "test-rules/src/main/**/*.java", | 
 |     ], | 
 |     static_libs: ["junit"], | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: ["core-all"], | 
 |     system_modules: "core-all-system-modules", | 
 | } | 
 |  | 
 | // Builds the core-tests-support library used by various tests. | 
 | java_library_static { | 
 |     name: "core-tests-support", | 
 |     hostdex: true, | 
 |     srcs: ["support/src/test/java/**/*.java"], | 
 |  | 
 |     no_framework_libs: true, | 
 |     libs: ["junit"], | 
 |     static_libs: [ | 
 |         "bouncycastle-unbundled", | 
 |         "bouncycastle-bcpkix-unbundled", | 
 |         "bouncycastle-ocsp-unbundled", | 
 |     ], | 
 | } | 
 |  | 
 | // Builds the jsr166-tests library. | 
 | java_test { | 
 |     name: "jsr166-tests", | 
 |     srcs: ["jsr166-tests/src/test/java/**/*.java"], | 
 |     no_standard_libs: true, | 
 |     libs: [ | 
 |         "core-all", | 
 |         "junit", | 
 |     ], | 
 |     system_modules: "core-all-system-modules", | 
 | } | 
 |  | 
 | // Builds a library just containing files from luni/src/test/filesystems | 
 | // for use in tests. | 
 | java_library { | 
 |     name: "filesystemstest", | 
 |     compile_dex: true, | 
 |     srcs: ["luni/src/test/filesystems/src/**/*.java"], | 
 |     java_resource_dirs: ["luni/src/test/filesystems/resources"], | 
 |     no_framework_libs: true, | 
 |     errorprone: { | 
 |         javacflags: ["-Xep:MissingOverride:OFF"], | 
 |     }, | 
 | } | 
 |  | 
 | // Builds a library just containing files from luni/src/test/parameter_metadata | 
 | // for use in tests. | 
 | java_library { | 
 |     name: "parameter-metadata-test", | 
 |     compile_dex: true, | 
 |     srcs: ["luni/src/test/parameter_metadata/src/**/*.java"], | 
 |     no_framework_libs: true, | 
 |     javacflags: ["-parameters"], | 
 |     errorprone: { | 
 |         javacflags: ["-Xep:MissingOverride:OFF"], | 
 |     }, | 
 | } | 
 |  | 
 | // Builds the core-tests library. | 
 | java_test { | 
 |     name: "core-tests", | 
 |     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: [ | 
 |         "luni/src/test/java/libcore/java/util/zip/Zip64Test.java", | 
 |         "luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java", | 
 |     ], | 
 |  | 
 |     java_resource_dirs: [ | 
 |         "*/src/test/java", | 
 |         "*/src/test/resources", | 
 |     ], | 
 |     exclude_java_resource_dirs: [ | 
 |         "ojluni/src/test/java", | 
 |         "ojluni/src/test/resources", | 
 |     ], | 
 |  | 
 |     java_resources: [ | 
 |         ":filesystemstest", | 
 |         ":parameter-metadata-test", | 
 |     ], | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: [ | 
 |         "core-all", | 
 |         "okhttp", | 
 |         "bouncycastle", | 
 |     ], | 
 |     system_modules: "core-all-system-modules", | 
 |  | 
 |     static_libs: [ | 
 |         "archive-patcher", | 
 |         "core-test-rules", | 
 |         "core-tests-support", | 
 |         "junit-params", | 
 |         "mockftpserver", | 
 |         "mockito-target", | 
 |         "mockwebserver", | 
 |         "nist-pkix-tests", | 
 |         "slf4j-jdk14", | 
 |         "sqlite-jdbc", | 
 |         "tzdata-testing", | 
 |         "truth-prebuilt", | 
 |     ], | 
 |  | 
 |     errorprone: { | 
 |         javacflags: [ | 
 |             "-Xep:TryFailThrowable:ERROR", | 
 |             "-Xep:ComparisonOutOfRange:ERROR", | 
 |         ], | 
 |     }, | 
 |  | 
 |     test_config: "AndroidTest-core-tests.xml", | 
 | } | 
 |  | 
 | // 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", | 
 |     ], | 
 |     java_resource_dirs: [ | 
 |         "ojluni/src/test/java", | 
 |         "ojluni/src/test/resources", | 
 |     ], | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: [ | 
 |         "core-all", | 
 |         "okhttp", | 
 |         "bouncycastle", | 
 |     ], | 
 |     system_modules: "core-all-system-modules", | 
 |  | 
 |     static_libs: ["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", | 
 |     defaults: ["libcore_java_defaults"], | 
 |     srcs: [ | 
 |         "ojluni/src/test/java/**/*.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" | 
 |     exclude_srcs: [ | 
 |         "**/DeserializeMethodTest.java", | 
 |         "**/SerializedLambdaTest.java", | 
 |         "ojluni/src/test/java/util/stream/boot*/**/*", | 
 |     ], | 
 |     java_resource_dirs: [ | 
 |         "ojluni/src/test/java", | 
 |         "ojluni/src/test/resources", | 
 |         // Include source code as part of JAR | 
 |         "ojluni/src/test/dist", | 
 |     ], | 
 |  | 
 |     no_standard_libs: true, | 
 |     libs: [ | 
 |         "core-all", | 
 |         "bouncycastle", | 
 |         "okhttp", | 
 |         "testng", | 
 |     ], | 
 |     system_modules: "core-all-system-modules", | 
 | } | 
 |  | 
 | // 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", | 
 |     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-code API | 
 | // annotations in OpenJDK source. | 
 | droiddoc_exported_dir { | 
 |     name: "ojluni-annotated-mmodule-stubs", | 
 |     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", | 
 |     srcs: [ | 
 |         "known_oj_tags.txt", | 
 |     ], | 
 | } | 
 |  | 
 | // Generates stubs for the parts of the public SDK API provided by the core | 
 | // library. | 
 | // | 
 | // Only for use by core.current.stubs target below. | 
 | droidstubs { | 
 |     name: "core-current-stubs-gen", | 
 |     srcs: [":core_api_files"], | 
 |     java_version: "1.9", | 
 |     installable: false, | 
 |     no_framework_libs: true, | 
 |     args: " --exclude-annotations " | 
 |         + "--hide-annotation libcore.api.Hide", | 
 |     merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"], | 
 | } | 
 |  | 
 | // A stubs target containing the parts of the public SDK API provided by the | 
 | // core library. | 
 | // | 
 | // Don't use this directly, use "sdk_version: core_current". | 
 | java_library { | 
 |     name: "core.current.stubs", | 
 |     srcs: [":core-current-stubs-gen"], | 
 |     errorprone: { | 
 |         javacflags: [ | 
 |             "-Xep:MissingOverride:OFF", | 
 |         ], | 
 |     }, | 
 |     openjdk9: { | 
 |         javacflags: ["--patch-module=java.base=."], | 
 |     }, | 
 |     no_standard_libs: true, | 
 |     system_modules: "none", | 
 |  | 
 |     dist: { | 
 |         targets: [ | 
 |             "sdk", | 
 |             "win_sdk", | 
 |         ], | 
 |     }, | 
 | } | 
 |  | 
 | // Target for validating nullability annotations for correctness and | 
 | // completeness. To check that there are no nullability errors: | 
 | //   make core-current-stubs-nullability-validation | 
 | // To check that there are only the expected nullability warnings: | 
 | //   make core-current-stubs-nullability-validation-check-nullability-warnings | 
 | // To update the the list of known expected nullability warnings: | 
 | //   make core-current-stubs-nullability-validation-update-nullability-warnings | 
 | droidstubs { | 
 |     name: "core-current-stubs-nullability-validation", | 
 |     srcs: [":core_api_files"], | 
 |     installable: false, | 
 |     no_framework_libs: true, | 
 |     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: [ | 
 |         "metalava-manual", | 
 |         // 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 host library containing time zone related classes. Used for | 
 | // host-side tools and tests that have to deal with Android | 
 | // time zone data. | 
 | java_library_host { | 
 |     name: "timezone-host", | 
 |     srcs: [":timezone_host_files"], | 
 | } |