1*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project 2*795d594fSAndroid Build Coastguard Worker// 3*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*795d594fSAndroid Build Coastguard Worker// 7*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*795d594fSAndroid Build Coastguard Worker// 9*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*795d594fSAndroid Build Coastguard Worker// limitations under the License. 14*795d594fSAndroid Build Coastguard Worker 15*795d594fSAndroid Build Coastguard Workerpackage { 16*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 17*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 18*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 19*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 20*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 21*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 22*795d594fSAndroid Build Coastguard Worker} 23*795d594fSAndroid Build Coastguard Worker 24*795d594fSAndroid Build Coastguard Workerjava_defaults { 25*795d594fSAndroid Build Coastguard Worker name: "art-bootclasspath-fragment-soong-config-defaults", 26*795d594fSAndroid Build Coastguard Worker core_platform_api: { 27*795d594fSAndroid Build Coastguard Worker // TODO: b/319697968 - Remove the conditional logic and let art-bootclasspath-fragment 28*795d594fSAndroid Build Coastguard Worker // always depend on the exportable stubs once metalava fully supports flagged api handling. 29*795d594fSAndroid Build Coastguard Worker stub_libs: select(release_flag("RELEASE_HIDDEN_API_EXPORTABLE_STUBS"), { 30*795d594fSAndroid Build Coastguard Worker // When "RELEASE_HIDDEN_API_EXPORTABLE_STUBS" build flag is set, 31*795d594fSAndroid Build Coastguard Worker // depend on the exportable stubs, otherwise depend on the everything stubs. 32*795d594fSAndroid Build Coastguard Worker // In both cases, use core platform (aka. module_lib) stubs for all the non-coverage 33*795d594fSAndroid Build Coastguard Worker // contents. 34*795d594fSAndroid Build Coastguard Worker true: ["art.module.public.api.stubs.exportable.module_lib"], 35*795d594fSAndroid Build Coastguard Worker false: ["art.module.public.api.stubs.module_lib"], 36*795d594fSAndroid Build Coastguard Worker }), 37*795d594fSAndroid Build Coastguard Worker }, 38*795d594fSAndroid Build Coastguard Worker} 39*795d594fSAndroid Build Coastguard Worker 40*795d594fSAndroid Build Coastguard Worker// Encapsulate the contributions made by the com.android.art to the bootclasspath. 41*795d594fSAndroid Build Coastguard Workerbootclasspath_fragment { 42*795d594fSAndroid Build Coastguard Worker name: "art-bootclasspath-fragment", 43*795d594fSAndroid Build Coastguard Worker defaults: [ 44*795d594fSAndroid Build Coastguard Worker "art-bootclasspath-fragment-soong-config-defaults", 45*795d594fSAndroid Build Coastguard Worker ], 46*795d594fSAndroid Build Coastguard Worker image_name: "art", 47*795d594fSAndroid Build Coastguard Worker // Must match the ART_APEX_JARS set in build/make/core/envsetup.mk 48*795d594fSAndroid Build Coastguard Worker contents: [ 49*795d594fSAndroid Build Coastguard Worker "core-oj", 50*795d594fSAndroid Build Coastguard Worker "core-libart", 51*795d594fSAndroid Build Coastguard Worker "okhttp", 52*795d594fSAndroid Build Coastguard Worker "bouncycastle", 53*795d594fSAndroid Build Coastguard Worker "apache-xml", 54*795d594fSAndroid Build Coastguard Worker ], 55*795d594fSAndroid Build Coastguard Worker 56*795d594fSAndroid Build Coastguard Worker api: { 57*795d594fSAndroid Build Coastguard Worker stub_libs: [ 58*795d594fSAndroid Build Coastguard Worker // Stubs for the core-oj and core-libart. The other modules do not 59*795d594fSAndroid Build Coastguard Worker // have any public API. 60*795d594fSAndroid Build Coastguard Worker "art.module.public.api", 61*795d594fSAndroid Build Coastguard Worker ], 62*795d594fSAndroid Build Coastguard Worker }, 63*795d594fSAndroid Build Coastguard Worker 64*795d594fSAndroid Build Coastguard Worker // Additional properties to append when coverage is enabled, i.e. when 65*795d594fSAndroid Build Coastguard Worker // EMMA_INSTRUMENT_FRAMEWORK=true 66*795d594fSAndroid Build Coastguard Worker coverage: { 67*795d594fSAndroid Build Coastguard Worker contents: [ 68*795d594fSAndroid Build Coastguard Worker "jacocoagent", 69*795d594fSAndroid Build Coastguard Worker ], 70*795d594fSAndroid Build Coastguard Worker api: { 71*795d594fSAndroid Build Coastguard Worker stub_libs: [ 72*795d594fSAndroid Build Coastguard Worker // Stubs for the jacocoagent. 73*795d594fSAndroid Build Coastguard Worker "jacoco-stubs", 74*795d594fSAndroid Build Coastguard Worker ], 75*795d594fSAndroid Build Coastguard Worker }, 76*795d594fSAndroid Build Coastguard Worker 77*795d594fSAndroid Build Coastguard Worker hidden_api: { 78*795d594fSAndroid Build Coastguard Worker // Additional packages provided by jacoagent 79*795d594fSAndroid Build Coastguard Worker package_prefixes: [ 80*795d594fSAndroid Build Coastguard Worker "com.vladium.emma.rt", 81*795d594fSAndroid Build Coastguard Worker "org.jacoco", 82*795d594fSAndroid Build Coastguard Worker "org.objectweb.asm", 83*795d594fSAndroid Build Coastguard Worker ], 84*795d594fSAndroid Build Coastguard Worker 85*795d594fSAndroid Build Coastguard Worker }, 86*795d594fSAndroid Build Coastguard Worker }, 87*795d594fSAndroid Build Coastguard Worker visibility: [ 88*795d594fSAndroid Build Coastguard Worker "//art/build/apex", 89*795d594fSAndroid Build Coastguard Worker "//art/build/sdk", 90*795d594fSAndroid Build Coastguard Worker ], 91*795d594fSAndroid Build Coastguard Worker apex_available: [ 92*795d594fSAndroid Build Coastguard Worker "com.android.art", 93*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 94*795d594fSAndroid Build Coastguard Worker ], 95*795d594fSAndroid Build Coastguard Worker 96*795d594fSAndroid Build Coastguard Worker hidden_api: { 97*795d594fSAndroid Build Coastguard Worker blocked: ["hiddenapi/hiddenapi-blocked.txt"], 98*795d594fSAndroid Build Coastguard Worker max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"], 99*795d594fSAndroid Build Coastguard Worker unsupported_packages: ["hiddenapi/hiddenapi-unsupported-packages.txt"], 100*795d594fSAndroid Build Coastguard Worker 101*795d594fSAndroid Build Coastguard Worker // This module does not contain any split packages. 102*795d594fSAndroid Build Coastguard Worker split_packages: [], 103*795d594fSAndroid Build Coastguard Worker 104*795d594fSAndroid Build Coastguard Worker // The following packages currently only contain classes from this 105*795d594fSAndroid Build Coastguard Worker // bootclasspath_fragment but some of their sub-packages contain classes 106*795d594fSAndroid Build Coastguard Worker // from other bootckasspath modules. Packages should only be listed here 107*795d594fSAndroid Build Coastguard Worker // when necessary for legacy purposes, new packages should match a 108*795d594fSAndroid Build Coastguard Worker // package prefix. 109*795d594fSAndroid Build Coastguard Worker single_packages: [ 110*795d594fSAndroid Build Coastguard Worker "android.system", 111*795d594fSAndroid Build Coastguard Worker ], 112*795d594fSAndroid Build Coastguard Worker 113*795d594fSAndroid Build Coastguard Worker // The following packages and all their subpackages currently only 114*795d594fSAndroid Build Coastguard Worker // contain classes from this bootclasspath_fragment. Listing a package 115*795d594fSAndroid Build Coastguard Worker // here won't prevent other bootclasspath modules from adding classes in 116*795d594fSAndroid Build Coastguard Worker // any of those packages but it will prevent them from adding those 117*795d594fSAndroid Build Coastguard Worker // classes into an API surface, e.g. public, system, etc.. Doing so will 118*795d594fSAndroid Build Coastguard Worker // result in a build failure due to inconsistent flags. 119*795d594fSAndroid Build Coastguard Worker package_prefixes: [ 120*795d594fSAndroid Build Coastguard Worker "android.compat", 121*795d594fSAndroid Build Coastguard Worker "android.crypto.hpke", 122*795d594fSAndroid Build Coastguard Worker "com.android.art.flags", 123*795d594fSAndroid Build Coastguard Worker "com.android.libcore", 124*795d594fSAndroid Build Coastguard Worker "com.android.okhttp", 125*795d594fSAndroid Build Coastguard Worker "com.android.org.bouncycastle", 126*795d594fSAndroid Build Coastguard Worker "com.android.org.kxml2", 127*795d594fSAndroid Build Coastguard Worker "com.sun", 128*795d594fSAndroid Build Coastguard Worker "dalvik", 129*795d594fSAndroid Build Coastguard Worker "java", 130*795d594fSAndroid Build Coastguard Worker "javax.annotation", 131*795d594fSAndroid Build Coastguard Worker "javax.crypto", 132*795d594fSAndroid Build Coastguard Worker "javax.net", 133*795d594fSAndroid Build Coastguard Worker "javax.security", 134*795d594fSAndroid Build Coastguard Worker "javax.sql", 135*795d594fSAndroid Build Coastguard Worker "javax.xml", 136*795d594fSAndroid Build Coastguard Worker "jdk", 137*795d594fSAndroid Build Coastguard Worker "libcore", 138*795d594fSAndroid Build Coastguard Worker "org.apache.harmony", 139*795d594fSAndroid Build Coastguard Worker "org.apache.xalan", 140*795d594fSAndroid Build Coastguard Worker "org.apache.xml", 141*795d594fSAndroid Build Coastguard Worker "org.apache.xpath", 142*795d594fSAndroid Build Coastguard Worker "org.json", 143*795d594fSAndroid Build Coastguard Worker "org.w3c", 144*795d594fSAndroid Build Coastguard Worker "org.xml", 145*795d594fSAndroid Build Coastguard Worker "org.xmlpull", 146*795d594fSAndroid Build Coastguard Worker "sun", 147*795d594fSAndroid Build Coastguard Worker ], 148*795d594fSAndroid Build Coastguard Worker }, 149*795d594fSAndroid Build Coastguard Worker} 150*795d594fSAndroid Build Coastguard Worker 151*795d594fSAndroid Build Coastguard Worker// Encapsulate the contributions made by the com.android.art to the systemserverclasspath. 152*795d594fSAndroid Build Coastguard Workersystemserverclasspath_fragment { 153*795d594fSAndroid Build Coastguard Worker name: "art-systemserverclasspath-fragment", 154*795d594fSAndroid Build Coastguard Worker contents: ["service-art"], 155*795d594fSAndroid Build Coastguard Worker apex_available: [ 156*795d594fSAndroid Build Coastguard Worker "com.android.art", 157*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 158*795d594fSAndroid Build Coastguard Worker ], 159*795d594fSAndroid Build Coastguard Worker} 160