xref: /aosp_15_r20/art/build/boot/Android.bp (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
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