xref: /aosp_15_r20/art/oatdump/Android.bp (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker//
2*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2011 The Android Open Source Project
3*795d594fSAndroid Build Coastguard Worker//
4*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*795d594fSAndroid Build Coastguard Worker//
8*795d594fSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*795d594fSAndroid Build Coastguard Worker//
10*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*795d594fSAndroid Build Coastguard Worker// limitations under the License.
15*795d594fSAndroid Build Coastguard Worker//
16*795d594fSAndroid Build Coastguard Worker
17*795d594fSAndroid Build Coastguard Workerpackage {
18*795d594fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
19*795d594fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
20*795d594fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "art_license"
21*795d594fSAndroid Build Coastguard Worker    // to get the below license kinds:
22*795d594fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
23*795d594fSAndroid Build Coastguard Worker    default_applicable_licenses: ["art_license"],
24*795d594fSAndroid Build Coastguard Worker    default_team: "trendy_team_art_performance",
25*795d594fSAndroid Build Coastguard Worker}
26*795d594fSAndroid Build Coastguard Worker
27*795d594fSAndroid Build Coastguard Workercc_defaults {
28*795d594fSAndroid Build Coastguard Worker    name: "oatdump-defaults",
29*795d594fSAndroid Build Coastguard Worker    defaults: ["art_defaults"],
30*795d594fSAndroid Build Coastguard Worker    host_supported: true,
31*795d594fSAndroid Build Coastguard Worker    srcs: ["oatdump.cc"],
32*795d594fSAndroid Build Coastguard Worker    header_libs: [
33*795d594fSAndroid Build Coastguard Worker        "art_cmdlineparser_headers",
34*795d594fSAndroid Build Coastguard Worker    ],
35*795d594fSAndroid Build Coastguard Worker}
36*795d594fSAndroid Build Coastguard Worker
37*795d594fSAndroid Build Coastguard Worker// Collect all the static defaults and build a host-only static library, which
38*795d594fSAndroid Build Coastguard Worker// is then used for the (mostly) static host oatdump binary.
39*795d594fSAndroid Build Coastguard Workerart_cc_library_static {
40*795d594fSAndroid Build Coastguard Worker    name: "liboatdump_static",
41*795d594fSAndroid Build Coastguard Worker    device_supported: false,
42*795d594fSAndroid Build Coastguard Worker    host_supported: true,
43*795d594fSAndroid Build Coastguard Worker    defaults: [
44*795d594fSAndroid Build Coastguard Worker        "libart-disassembler_static_defaults",
45*795d594fSAndroid Build Coastguard Worker        "libart_static_defaults",
46*795d594fSAndroid Build Coastguard Worker        "libartbase_static_defaults",
47*795d594fSAndroid Build Coastguard Worker        "libdexfile_static_defaults",
48*795d594fSAndroid Build Coastguard Worker        "libprofile_static_defaults",
49*795d594fSAndroid Build Coastguard Worker        "oatdump-defaults",
50*795d594fSAndroid Build Coastguard Worker    ],
51*795d594fSAndroid Build Coastguard Worker    whole_static_libs: [
52*795d594fSAndroid Build Coastguard Worker        "libbase",
53*795d594fSAndroid Build Coastguard Worker    ],
54*795d594fSAndroid Build Coastguard Worker}
55*795d594fSAndroid Build Coastguard Worker
56*795d594fSAndroid Build Coastguard Workerart_cc_binary {
57*795d594fSAndroid Build Coastguard Worker    name: "oatdump",
58*795d594fSAndroid Build Coastguard Worker    defaults: ["oatdump-defaults"],
59*795d594fSAndroid Build Coastguard Worker
60*795d594fSAndroid Build Coastguard Worker    target: {
61*795d594fSAndroid Build Coastguard Worker        android: {
62*795d594fSAndroid Build Coastguard Worker            shared_libs: [
63*795d594fSAndroid Build Coastguard Worker                "libart",
64*795d594fSAndroid Build Coastguard Worker                "libart-disassembler",
65*795d594fSAndroid Build Coastguard Worker                "libartbase",
66*795d594fSAndroid Build Coastguard Worker                "libbase",
67*795d594fSAndroid Build Coastguard Worker                "libdexfile#impl",
68*795d594fSAndroid Build Coastguard Worker                "libprofile",
69*795d594fSAndroid Build Coastguard Worker            ],
70*795d594fSAndroid Build Coastguard Worker            static_libs: [
71*795d594fSAndroid Build Coastguard Worker                "libelffile",
72*795d594fSAndroid Build Coastguard Worker            ],
73*795d594fSAndroid Build Coastguard Worker        },
74*795d594fSAndroid Build Coastguard Worker        host: {
75*795d594fSAndroid Build Coastguard Worker            // Make the host binary static, except for system libraries.
76*795d594fSAndroid Build Coastguard Worker            static_libs: ["liboatdump_static"],
77*795d594fSAndroid Build Coastguard Worker            stl: "c++_static",
78*795d594fSAndroid Build Coastguard Worker        },
79*795d594fSAndroid Build Coastguard Worker    },
80*795d594fSAndroid Build Coastguard Worker
81*795d594fSAndroid Build Coastguard Worker    apex_available: [
82*795d594fSAndroid Build Coastguard Worker        "com.android.art",
83*795d594fSAndroid Build Coastguard Worker        "com.android.art.debug",
84*795d594fSAndroid Build Coastguard Worker        "test_broken_com.android.art",
85*795d594fSAndroid Build Coastguard Worker    ],
86*795d594fSAndroid Build Coastguard Worker}
87*795d594fSAndroid Build Coastguard Worker
88*795d594fSAndroid Build Coastguard Worker// Collect all the static defaults and build a host-only static library, which
89*795d594fSAndroid Build Coastguard Worker// is then used for the (mostly) static host oatdump binary.
90*795d594fSAndroid Build Coastguard Workerart_cc_library_static {
91*795d594fSAndroid Build Coastguard Worker    name: "liboatdumpd_static",
92*795d594fSAndroid Build Coastguard Worker    device_supported: false,
93*795d594fSAndroid Build Coastguard Worker    host_supported: true,
94*795d594fSAndroid Build Coastguard Worker    defaults: [
95*795d594fSAndroid Build Coastguard Worker        "libartd-disassembler_static_defaults",
96*795d594fSAndroid Build Coastguard Worker        "libartd_static_defaults",
97*795d594fSAndroid Build Coastguard Worker        "libartbased_static_defaults",
98*795d594fSAndroid Build Coastguard Worker        "libdexfiled_static_defaults",
99*795d594fSAndroid Build Coastguard Worker        "libprofiled_static_defaults",
100*795d594fSAndroid Build Coastguard Worker        "oatdump-defaults",
101*795d594fSAndroid Build Coastguard Worker    ],
102*795d594fSAndroid Build Coastguard Worker    whole_static_libs: [
103*795d594fSAndroid Build Coastguard Worker        "libbase",
104*795d594fSAndroid Build Coastguard Worker    ],
105*795d594fSAndroid Build Coastguard Worker}
106*795d594fSAndroid Build Coastguard Worker
107*795d594fSAndroid Build Coastguard Workerart_cc_binary {
108*795d594fSAndroid Build Coastguard Worker    name: "oatdumpd",
109*795d594fSAndroid Build Coastguard Worker    defaults: [
110*795d594fSAndroid Build Coastguard Worker        "art_debug_defaults",
111*795d594fSAndroid Build Coastguard Worker        "oatdump-defaults",
112*795d594fSAndroid Build Coastguard Worker    ],
113*795d594fSAndroid Build Coastguard Worker
114*795d594fSAndroid Build Coastguard Worker    target: {
115*795d594fSAndroid Build Coastguard Worker        android: {
116*795d594fSAndroid Build Coastguard Worker            shared_libs: [
117*795d594fSAndroid Build Coastguard Worker                "libartbased",
118*795d594fSAndroid Build Coastguard Worker                "libartd",
119*795d594fSAndroid Build Coastguard Worker                "libartd-disassembler",
120*795d594fSAndroid Build Coastguard Worker                "libbase",
121*795d594fSAndroid Build Coastguard Worker                "libdexfiled#impl",
122*795d594fSAndroid Build Coastguard Worker                "libprofiled",
123*795d594fSAndroid Build Coastguard Worker            ],
124*795d594fSAndroid Build Coastguard Worker            static_libs: [
125*795d594fSAndroid Build Coastguard Worker                "libelffiled",
126*795d594fSAndroid Build Coastguard Worker            ],
127*795d594fSAndroid Build Coastguard Worker        },
128*795d594fSAndroid Build Coastguard Worker        host: {
129*795d594fSAndroid Build Coastguard Worker            // Make the host binary static, except for system libraries.
130*795d594fSAndroid Build Coastguard Worker            static_libs: ["liboatdumpd_static"],
131*795d594fSAndroid Build Coastguard Worker            stl: "c++_static",
132*795d594fSAndroid Build Coastguard Worker        },
133*795d594fSAndroid Build Coastguard Worker    },
134*795d594fSAndroid Build Coastguard Worker
135*795d594fSAndroid Build Coastguard Worker    apex_available: [
136*795d594fSAndroid Build Coastguard Worker        "com.android.art.debug",
137*795d594fSAndroid Build Coastguard Worker    ],
138*795d594fSAndroid Build Coastguard Worker}
139*795d594fSAndroid Build Coastguard Worker
140*795d594fSAndroid Build Coastguard Workercc_defaults {
141*795d594fSAndroid Build Coastguard Worker    name: "oatdumps-defaults",
142*795d594fSAndroid Build Coastguard Worker    device_supported: false,
143*795d594fSAndroid Build Coastguard Worker    static_executable: true,
144*795d594fSAndroid Build Coastguard Worker    defaults: [
145*795d594fSAndroid Build Coastguard Worker        "oatdump-defaults",
146*795d594fSAndroid Build Coastguard Worker    ],
147*795d594fSAndroid Build Coastguard Worker    target: {
148*795d594fSAndroid Build Coastguard Worker        darwin: {
149*795d594fSAndroid Build Coastguard Worker            enabled: false,
150*795d594fSAndroid Build Coastguard Worker        },
151*795d594fSAndroid Build Coastguard Worker    },
152*795d594fSAndroid Build Coastguard Worker    ldflags: [
153*795d594fSAndroid Build Coastguard Worker        // We need this because GC stress mode makes use of
154*795d594fSAndroid Build Coastguard Worker        // _Unwind_GetIP and _Unwind_Backtrace and the symbols are also
155*795d594fSAndroid Build Coastguard Worker        // defined in libgcc_eh.a(unwind-dw2.o)
156*795d594fSAndroid Build Coastguard Worker        // TODO: Having this is not ideal as it might obscure errors.
157*795d594fSAndroid Build Coastguard Worker        // Try to get rid of it.
158*795d594fSAndroid Build Coastguard Worker        "-z muldefs",
159*795d594fSAndroid Build Coastguard Worker    ],
160*795d594fSAndroid Build Coastguard Worker    static_libs: ["libsigchain_fake"],
161*795d594fSAndroid Build Coastguard Worker}
162*795d594fSAndroid Build Coastguard Worker
163*795d594fSAndroid Build Coastguard Workerart_cc_binary {
164*795d594fSAndroid Build Coastguard Worker    name: "oatdumps",
165*795d594fSAndroid Build Coastguard Worker    defaults: [
166*795d594fSAndroid Build Coastguard Worker        "libart_static_defaults",
167*795d594fSAndroid Build Coastguard Worker        "libartbase_static_defaults",
168*795d594fSAndroid Build Coastguard Worker        "libdexfile_static_defaults",
169*795d594fSAndroid Build Coastguard Worker        "libprofile_static_defaults",
170*795d594fSAndroid Build Coastguard Worker        "oatdumps-defaults",
171*795d594fSAndroid Build Coastguard Worker    ],
172*795d594fSAndroid Build Coastguard Worker    static_libs: [
173*795d594fSAndroid Build Coastguard Worker        "libart-disassembler",
174*795d594fSAndroid Build Coastguard Worker        "libvixl",
175*795d594fSAndroid Build Coastguard Worker    ],
176*795d594fSAndroid Build Coastguard Worker}
177*795d594fSAndroid Build Coastguard Worker
178*795d594fSAndroid Build Coastguard Workerart_cc_binary {
179*795d594fSAndroid Build Coastguard Worker    name: "oatdumpds",
180*795d594fSAndroid Build Coastguard Worker    defaults: [
181*795d594fSAndroid Build Coastguard Worker        "art_debug_defaults",
182*795d594fSAndroid Build Coastguard Worker        "libartd_static_defaults",
183*795d594fSAndroid Build Coastguard Worker        "libartbased_static_defaults",
184*795d594fSAndroid Build Coastguard Worker        "libdexfiled_static_defaults",
185*795d594fSAndroid Build Coastguard Worker        "libprofiled_static_defaults",
186*795d594fSAndroid Build Coastguard Worker        "oatdumps-defaults",
187*795d594fSAndroid Build Coastguard Worker    ],
188*795d594fSAndroid Build Coastguard Worker    static_libs: [
189*795d594fSAndroid Build Coastguard Worker        "libartd-disassembler",
190*795d594fSAndroid Build Coastguard Worker        "libvixld",
191*795d594fSAndroid Build Coastguard Worker    ],
192*795d594fSAndroid Build Coastguard Worker}
193*795d594fSAndroid Build Coastguard Worker
194*795d594fSAndroid Build Coastguard Workerart_cc_defaults {
195*795d594fSAndroid Build Coastguard Worker    name: "art_oatdump_tests_defaults",
196*795d594fSAndroid Build Coastguard Worker    device_common_data: [
197*795d594fSAndroid Build Coastguard Worker        ":art-gtest-jars-ProfileTestMultiDex",
198*795d594fSAndroid Build Coastguard Worker    ],
199*795d594fSAndroid Build Coastguard Worker    srcs: [
200*795d594fSAndroid Build Coastguard Worker        "oatdump_app_test.cc",
201*795d594fSAndroid Build Coastguard Worker        "oatdump_test.cc",
202*795d594fSAndroid Build Coastguard Worker        "oatdump_image_test.cc",
203*795d594fSAndroid Build Coastguard Worker    ],
204*795d594fSAndroid Build Coastguard Worker    target: {
205*795d594fSAndroid Build Coastguard Worker        host: {
206*795d594fSAndroid Build Coastguard Worker            required: [
207*795d594fSAndroid Build Coastguard Worker                "dex2oatd",
208*795d594fSAndroid Build Coastguard Worker                "dex2oatds",
209*795d594fSAndroid Build Coastguard Worker                "dexdump",
210*795d594fSAndroid Build Coastguard Worker                "art_boot_images",
211*795d594fSAndroid Build Coastguard Worker                "oatdumpd",
212*795d594fSAndroid Build Coastguard Worker                "oatdumpds",
213*795d594fSAndroid Build Coastguard Worker            ],
214*795d594fSAndroid Build Coastguard Worker        },
215*795d594fSAndroid Build Coastguard Worker    },
216*795d594fSAndroid Build Coastguard Worker}
217*795d594fSAndroid Build Coastguard Worker
218*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_oatdump_tests` bundled with the ART APEX on target.
219*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
220*795d594fSAndroid Build Coastguard Workerart_cc_test {
221*795d594fSAndroid Build Coastguard Worker    name: "art_oatdump_tests",
222*795d594fSAndroid Build Coastguard Worker    defaults: [
223*795d594fSAndroid Build Coastguard Worker        "art_gtest_defaults",
224*795d594fSAndroid Build Coastguard Worker        "art_oatdump_tests_defaults",
225*795d594fSAndroid Build Coastguard Worker    ],
226*795d594fSAndroid Build Coastguard Worker}
227*795d594fSAndroid Build Coastguard Worker
228*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_oatdump_tests`, not bundled with the ART APEX on target.
229*795d594fSAndroid Build Coastguard Workerart_cc_test {
230*795d594fSAndroid Build Coastguard Worker    name: "art_standalone_oatdump_tests",
231*795d594fSAndroid Build Coastguard Worker    defaults: [
232*795d594fSAndroid Build Coastguard Worker        "art_standalone_gtest_defaults",
233*795d594fSAndroid Build Coastguard Worker        "art_oatdump_tests_defaults",
234*795d594fSAndroid Build Coastguard Worker    ],
235*795d594fSAndroid Build Coastguard Worker    data: [":generate-boot-image"],
236*795d594fSAndroid Build Coastguard Worker    test_config: "art_standalone_oatdump_tests.xml",
237*795d594fSAndroid Build Coastguard Worker}
238*795d594fSAndroid Build Coastguard Worker
239*795d594fSAndroid Build Coastguard Workerphony_rule {
240*795d594fSAndroid Build Coastguard Worker    name: "dump-oat",
241*795d594fSAndroid Build Coastguard Worker    phony_deps: ["dump-oat-boot"],
242*795d594fSAndroid Build Coastguard Worker}
243