// Copyright (C) 2021 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 { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "art_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["art_license"], } // TODO: b/319697968 - Remove the conditional logic and let art-bootclasspath-fragment always // depend on the exportable stubs once metalava fully supports flagged api handling. soong_config_module_type { name: "art_bootclasspath_fragment_soong_config_defaults", module_type: "java_defaults", config_namespace: "ANDROID", bool_variables: [ "release_hidden_api_exportable_stubs", ], properties: [ "core_platform_api.stub_libs", ], } art_bootclasspath_fragment_soong_config_defaults { name: "art-bootclasspath-fragment-soong-config-defaults", soong_config_variables: { release_hidden_api_exportable_stubs: { // When "RELEASE_HIDDEN_API_EXPORTABLE_STUBS" build flag is set, // depend on the exportable stubs core_platform_api: { stub_libs: [ // Core platform (aka. module_lib) stubs for all the non-coverage contents. "art.module.public.api.stubs.exportable.module_lib", ], }, conditions_default: { // When "RELEASE_HIDDEN_API_EXPORTABLE_STUBS" build flag is not set, // depend on the everything stubs core_platform_api: { stub_libs: [ // Core platform (aka. module_lib) stubs for all the non-coverage contents. "art.module.public.api.stubs.module_lib", ], }, }, }, }, } // Encapsulate the contributions made by the com.android.art to the bootclasspath. bootclasspath_fragment { name: "art-bootclasspath-fragment", defaults: [ "art-bootclasspath-fragment-soong-config-defaults", ], image_name: "art", // Must match the ART_APEX_JARS set in build/make/core/envsetup.mk contents: [ "core-oj", "core-libart", "okhttp", "bouncycastle", "apache-xml", ], api: { stub_libs: [ // Stubs for the core-oj and core-libart. The other modules do not // have any public API. "art.module.public.api", ], }, // Additional properties to append when coverage is enabled, i.e. when // EMMA_INSTRUMENT_FRAMEWORK=true coverage: { contents: [ "jacocoagent", ], api: { stub_libs: [ // Stubs for the jacocoagent. "jacoco-stubs", ], }, hidden_api: { // Additional packages provided by jacoagent package_prefixes: [ "com.vladium.emma.rt", "org.jacoco", "org.objectweb.asm", ], }, }, visibility: [ "//art/build/apex", "//art/build/sdk", ], apex_available: [ "com.android.art", "com.android.art.debug", ], hidden_api: { blocked: ["hiddenapi/hiddenapi-blocked.txt"], max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"], unsupported_packages: ["hiddenapi/hiddenapi-unsupported-packages.txt"], // This module does not contain any split packages. split_packages: [], // The following packages currently only contain classes from this // bootclasspath_fragment but some of their sub-packages contain classes // from other bootckasspath modules. Packages should only be listed here // when necessary for legacy purposes, new packages should match a // package prefix. single_packages: [ "android.system", ], // The following packages and all their subpackages currently only // contain classes from this bootclasspath_fragment. Listing a package // here won't prevent other bootclasspath modules from adding classes in // any of those packages but it will prevent them from adding those // classes into an API surface, e.g. public, system, etc.. Doing so will // result in a build failure due to inconsistent flags. package_prefixes: [ "android.compat", "android.crypto.hpke", "com.android.okhttp", "com.android.org.bouncycastle", "com.android.org.kxml2", "com.sun", "dalvik", "java", "javax.annotation", "javax.crypto", "javax.net", "javax.security", "javax.sql", "javax.xml", "jdk", "libcore", "org.apache.harmony", "org.apache.xalan", "org.apache.xml", "org.apache.xpath", "org.json", "org.w3c", "org.xml", "org.xmlpull", "sun", ], }, } // Encapsulate the contributions made by the com.android.art to the systemserverclasspath. systemserverclasspath_fragment { name: "art-systemserverclasspath-fragment", contents: ["service-art"], apex_available: [ "com.android.art", "com.android.art.debug", ], }