xref: /aosp_15_r20/art/build/Android.bp (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Workerpackage {
2*795d594fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
3*795d594fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
4*795d594fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "art_license"
5*795d594fSAndroid Build Coastguard Worker    // to get the below license kinds:
6*795d594fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
7*795d594fSAndroid Build Coastguard Worker    default_applicable_licenses: ["art_license"],
8*795d594fSAndroid Build Coastguard Worker    default_team: "trendy_team_art_mainline",
9*795d594fSAndroid Build Coastguard Worker}
10*795d594fSAndroid Build Coastguard Worker
11*795d594fSAndroid Build Coastguard Workerbootstrap_go_package {
12*795d594fSAndroid Build Coastguard Worker    name: "soong-art",
13*795d594fSAndroid Build Coastguard Worker    pkgPath: "android/soong/art",
14*795d594fSAndroid Build Coastguard Worker    deps: [
15*795d594fSAndroid Build Coastguard Worker        "blueprint",
16*795d594fSAndroid Build Coastguard Worker        "blueprint-pathtools",
17*795d594fSAndroid Build Coastguard Worker        "blueprint-proptools",
18*795d594fSAndroid Build Coastguard Worker        "soong",
19*795d594fSAndroid Build Coastguard Worker        "soong-android",
20*795d594fSAndroid Build Coastguard Worker        "soong-apex",
21*795d594fSAndroid Build Coastguard Worker        "soong-cc",
22*795d594fSAndroid Build Coastguard Worker    ],
23*795d594fSAndroid Build Coastguard Worker    srcs: [
24*795d594fSAndroid Build Coastguard Worker        "art.go",
25*795d594fSAndroid Build Coastguard Worker        "codegen.go",
26*795d594fSAndroid Build Coastguard Worker        "makevars.go",
27*795d594fSAndroid Build Coastguard Worker    ],
28*795d594fSAndroid Build Coastguard Worker    pluginFor: ["soong_build"],
29*795d594fSAndroid Build Coastguard Worker}
30*795d594fSAndroid Build Coastguard Worker
31*795d594fSAndroid Build Coastguard Workerart_clang_tidy_errors = [
32*795d594fSAndroid Build Coastguard Worker    "android-cloexec-dup",
33*795d594fSAndroid Build Coastguard Worker    "android-cloexec-fopen",
34*795d594fSAndroid Build Coastguard Worker    "android-cloexec-open",
35*795d594fSAndroid Build Coastguard Worker    "bugprone-argument-comment",
36*795d594fSAndroid Build Coastguard Worker    "bugprone-lambda-function-name",
37*795d594fSAndroid Build Coastguard Worker    "bugprone-macro-parentheses",
38*795d594fSAndroid Build Coastguard Worker    "bugprone-macro-repeated-side-effects",
39*795d594fSAndroid Build Coastguard Worker    "bugprone-unused-raii", // Protect scoped things like MutexLock.
40*795d594fSAndroid Build Coastguard Worker    "bugprone-unused-return-value",
41*795d594fSAndroid Build Coastguard Worker    "bugprone-use-after-move",
42*795d594fSAndroid Build Coastguard Worker    "bugprone-virtual-near-miss",
43*795d594fSAndroid Build Coastguard Worker    "misc-unused-using-decls",
44*795d594fSAndroid Build Coastguard Worker    "modernize-use-bool-literals",
45*795d594fSAndroid Build Coastguard Worker    "modernize-use-nullptr",
46*795d594fSAndroid Build Coastguard Worker    "performance-faster-string-find",
47*795d594fSAndroid Build Coastguard Worker    "performance-for-range-copy",
48*795d594fSAndroid Build Coastguard Worker    "performance-implicit-conversion-in-loop",
49*795d594fSAndroid Build Coastguard Worker    "performance-inefficient-string-concatenation",
50*795d594fSAndroid Build Coastguard Worker    "performance-inefficient-vector-operation",
51*795d594fSAndroid Build Coastguard Worker    "performance-no-automatic-move",
52*795d594fSAndroid Build Coastguard Worker    "performance-noexcept-move-constructor",
53*795d594fSAndroid Build Coastguard Worker    "performance-unnecessary-copy-initialization",
54*795d594fSAndroid Build Coastguard Worker    "performance-unnecessary-value-param",
55*795d594fSAndroid Build Coastguard Worker    "readability-duplicate-include",
56*795d594fSAndroid Build Coastguard Worker    "readability-redundant-string-cstr",
57*795d594fSAndroid Build Coastguard Worker]
58*795d594fSAndroid Build Coastguard Worker
59*795d594fSAndroid Build Coastguard Workerart_clang_tidy_disabled = [
60*795d594fSAndroid Build Coastguard Worker    "-google-default-arguments",
61*795d594fSAndroid Build Coastguard Worker    // We have local stores that are only used for debug checks.
62*795d594fSAndroid Build Coastguard Worker    "-clang-analyzer-deadcode.DeadStores",
63*795d594fSAndroid Build Coastguard Worker    // We are OK with some static globals and that they can, in theory, throw.
64*795d594fSAndroid Build Coastguard Worker    "-cert-err58-cpp",
65*795d594fSAndroid Build Coastguard Worker    // We have lots of C-style variadic functions, and are OK with them. JNI ensures
66*795d594fSAndroid Build Coastguard Worker    // that working around this warning would be extra-painful.
67*795d594fSAndroid Build Coastguard Worker    "-cert-dcl50-cpp",
68*795d594fSAndroid Build Coastguard Worker    "-misc-redundant-expression",
69*795d594fSAndroid Build Coastguard Worker    // "Modernization" we don't agree with.
70*795d594fSAndroid Build Coastguard Worker    "-modernize-use-auto",
71*795d594fSAndroid Build Coastguard Worker    "-modernize-return-braced-init-list",
72*795d594fSAndroid Build Coastguard Worker    "-modernize-use-default-member-init",
73*795d594fSAndroid Build Coastguard Worker    "-modernize-pass-by-value",
74*795d594fSAndroid Build Coastguard Worker    // The only two remaining offenders are art/openjdkjvmti/include/jvmti.h and
75*795d594fSAndroid Build Coastguard Worker    // libcore/ojluni/src/main/native/jvm.h, which are both external files by Oracle
76*795d594fSAndroid Build Coastguard Worker    "-modernize-use-using",
77*795d594fSAndroid Build Coastguard Worker]
78*795d594fSAndroid Build Coastguard Worker
79*795d594fSAndroid Build Coastguard Workerart_global_defaults {
80*795d594fSAndroid Build Coastguard Worker    // Additional flags are computed by art.go
81*795d594fSAndroid Build Coastguard Worker
82*795d594fSAndroid Build Coastguard Worker    name: "art_defaults",
83*795d594fSAndroid Build Coastguard Worker
84*795d594fSAndroid Build Coastguard Worker    // This is the default visibility for the //art package, but we repeat it
85*795d594fSAndroid Build Coastguard Worker    // here so that it gets merged with other visibility rules in modules
86*795d594fSAndroid Build Coastguard Worker    // extending these defaults.
87*795d594fSAndroid Build Coastguard Worker    visibility: ["//art:__subpackages__"],
88*795d594fSAndroid Build Coastguard Worker
89*795d594fSAndroid Build Coastguard Worker    cflags: [
90*795d594fSAndroid Build Coastguard Worker        // Base set of cflags used by all things ART.
91*795d594fSAndroid Build Coastguard Worker        "-fno-rtti",
92*795d594fSAndroid Build Coastguard Worker        "-ggdb3",
93*795d594fSAndroid Build Coastguard Worker        "-Wall",
94*795d594fSAndroid Build Coastguard Worker        "-Werror",
95*795d594fSAndroid Build Coastguard Worker        "-Wextra",
96*795d594fSAndroid Build Coastguard Worker        "-Wstrict-aliasing",
97*795d594fSAndroid Build Coastguard Worker        "-fstrict-aliasing",
98*795d594fSAndroid Build Coastguard Worker        "-Wunreachable-code",
99*795d594fSAndroid Build Coastguard Worker        "-Wredundant-decls",
100*795d594fSAndroid Build Coastguard Worker        "-Wshadow",
101*795d594fSAndroid Build Coastguard Worker        "-Wunused",
102*795d594fSAndroid Build Coastguard Worker        "-fvisibility=protected",
103*795d594fSAndroid Build Coastguard Worker
104*795d594fSAndroid Build Coastguard Worker        // Warn about thread safety violations with clang.
105*795d594fSAndroid Build Coastguard Worker        "-Wthread-safety",
106*795d594fSAndroid Build Coastguard Worker        // TODO(b/144045034): turn on -Wthread-safety-negative
107*795d594fSAndroid Build Coastguard Worker        //"-Wthread-safety-negative",
108*795d594fSAndroid Build Coastguard Worker
109*795d594fSAndroid Build Coastguard Worker        // Warn if switch fallthroughs aren't annotated.
110*795d594fSAndroid Build Coastguard Worker        "-Wimplicit-fallthrough",
111*795d594fSAndroid Build Coastguard Worker
112*795d594fSAndroid Build Coastguard Worker        // Enable float equality warnings.
113*795d594fSAndroid Build Coastguard Worker        "-Wfloat-equal",
114*795d594fSAndroid Build Coastguard Worker
115*795d594fSAndroid Build Coastguard Worker        // Enable warning of converting ints to void*.
116*795d594fSAndroid Build Coastguard Worker        "-Wint-to-void-pointer-cast",
117*795d594fSAndroid Build Coastguard Worker
118*795d594fSAndroid Build Coastguard Worker        // Enable warning of wrong unused annotations.
119*795d594fSAndroid Build Coastguard Worker        "-Wused-but-marked-unused",
120*795d594fSAndroid Build Coastguard Worker
121*795d594fSAndroid Build Coastguard Worker        // Enable warning for deprecated language features.
122*795d594fSAndroid Build Coastguard Worker        "-Wdeprecated",
123*795d594fSAndroid Build Coastguard Worker
124*795d594fSAndroid Build Coastguard Worker        // Enable warning for unreachable break & return.
125*795d594fSAndroid Build Coastguard Worker        "-Wunreachable-code-break",
126*795d594fSAndroid Build Coastguard Worker        "-Wunreachable-code-return",
127*795d594fSAndroid Build Coastguard Worker
128*795d594fSAndroid Build Coastguard Worker        // Disable warning for use of offsetof on non-standard layout type.
129*795d594fSAndroid Build Coastguard Worker        // We use it to implement OFFSETOF_MEMBER - see macros.h.
130*795d594fSAndroid Build Coastguard Worker        "-Wno-invalid-offsetof",
131*795d594fSAndroid Build Coastguard Worker
132*795d594fSAndroid Build Coastguard Worker        // Enable inconsistent-missing-override warning. This warning is disabled by default in
133*795d594fSAndroid Build Coastguard Worker        // Android.
134*795d594fSAndroid Build Coastguard Worker        "-Winconsistent-missing-override",
135*795d594fSAndroid Build Coastguard Worker
136*795d594fSAndroid Build Coastguard Worker        // Enable thread annotations for std::mutex, etc.
137*795d594fSAndroid Build Coastguard Worker        "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
138*795d594fSAndroid Build Coastguard Worker    ],
139*795d594fSAndroid Build Coastguard Worker
140*795d594fSAndroid Build Coastguard Worker    arch: {
141*795d594fSAndroid Build Coastguard Worker        x86: {
142*795d594fSAndroid Build Coastguard Worker            avx2: {
143*795d594fSAndroid Build Coastguard Worker                cflags: [
144*795d594fSAndroid Build Coastguard Worker                    "-mavx2",
145*795d594fSAndroid Build Coastguard Worker                    "-mfma",
146*795d594fSAndroid Build Coastguard Worker                ],
147*795d594fSAndroid Build Coastguard Worker            },
148*795d594fSAndroid Build Coastguard Worker        },
149*795d594fSAndroid Build Coastguard Worker        x86_64: {
150*795d594fSAndroid Build Coastguard Worker            avx2: {
151*795d594fSAndroid Build Coastguard Worker                cflags: [
152*795d594fSAndroid Build Coastguard Worker                    "-mavx2",
153*795d594fSAndroid Build Coastguard Worker                    "-mfma",
154*795d594fSAndroid Build Coastguard Worker                ],
155*795d594fSAndroid Build Coastguard Worker            },
156*795d594fSAndroid Build Coastguard Worker        },
157*795d594fSAndroid Build Coastguard Worker    },
158*795d594fSAndroid Build Coastguard Worker
159*795d594fSAndroid Build Coastguard Worker    target: {
160*795d594fSAndroid Build Coastguard Worker        android: {
161*795d594fSAndroid Build Coastguard Worker            cflags: [
162*795d594fSAndroid Build Coastguard Worker                // To use oprofile_android --callgraph, uncomment this and recompile with
163*795d594fSAndroid Build Coastguard Worker                //    mmma -j art
164*795d594fSAndroid Build Coastguard Worker                // "-fno-omit-frame-pointer",
165*795d594fSAndroid Build Coastguard Worker                // "-marm",
166*795d594fSAndroid Build Coastguard Worker                // "-mapcs",
167*795d594fSAndroid Build Coastguard Worker            ],
168*795d594fSAndroid Build Coastguard Worker        },
169*795d594fSAndroid Build Coastguard Worker        linux: {
170*795d594fSAndroid Build Coastguard Worker            cflags: [
171*795d594fSAndroid Build Coastguard Worker                // Enable missing-noreturn only on non-Mac. As lots of things are not implemented for
172*795d594fSAndroid Build Coastguard Worker                // Apple, it's a pain.
173*795d594fSAndroid Build Coastguard Worker                "-Wmissing-noreturn",
174*795d594fSAndroid Build Coastguard Worker            ],
175*795d594fSAndroid Build Coastguard Worker            // Don't export symbols of statically linked libziparchive.
176*795d594fSAndroid Build Coastguard Worker            // Workaround to fix ODR violations (b/264235288) in gtests.
177*795d594fSAndroid Build Coastguard Worker            // `--exclude-libs` flag is not supported on windows/darwin.
178*795d594fSAndroid Build Coastguard Worker            ldflags: ["-Wl,--exclude-libs=libziparchive.a"],
179*795d594fSAndroid Build Coastguard Worker        },
180*795d594fSAndroid Build Coastguard Worker        linux_bionic: {
181*795d594fSAndroid Build Coastguard Worker            strip: {
182*795d594fSAndroid Build Coastguard Worker                // Do not strip art libs when building for linux-bionic.
183*795d594fSAndroid Build Coastguard Worker                // Otherwise we can't get any symbols out of crashes.
184*795d594fSAndroid Build Coastguard Worker                none: true,
185*795d594fSAndroid Build Coastguard Worker            },
186*795d594fSAndroid Build Coastguard Worker        },
187*795d594fSAndroid Build Coastguard Worker        darwin: {
188*795d594fSAndroid Build Coastguard Worker            enabled: false,
189*795d594fSAndroid Build Coastguard Worker        },
190*795d594fSAndroid Build Coastguard Worker        windows: {
191*795d594fSAndroid Build Coastguard Worker            // When the module is enabled globally in the soong_config_variables
192*795d594fSAndroid Build Coastguard Worker            // stanza above, it may get enabled on windows too for some module
193*795d594fSAndroid Build Coastguard Worker            // types. Hence we need to disable it explicitly.
194*795d594fSAndroid Build Coastguard Worker            // TODO(b/172480617): Clean up with that.
195*795d594fSAndroid Build Coastguard Worker            enabled: false,
196*795d594fSAndroid Build Coastguard Worker        },
197*795d594fSAndroid Build Coastguard Worker        host: {
198*795d594fSAndroid Build Coastguard Worker            cflags: [
199*795d594fSAndroid Build Coastguard Worker                // Bug: 15446488. We don't omit the frame pointer to work around
200*795d594fSAndroid Build Coastguard Worker                // clang/libunwind bugs that cause SEGVs in run-test-004-ThreadStress.
201*795d594fSAndroid Build Coastguard Worker                "-fno-omit-frame-pointer",
202*795d594fSAndroid Build Coastguard Worker            ],
203*795d594fSAndroid Build Coastguard Worker        },
204*795d594fSAndroid Build Coastguard Worker        // The build assumes that all our x86/x86_64 hosts (such as buildbots and developer
205*795d594fSAndroid Build Coastguard Worker        // desktops) support at least sse4.2/popcount. This firstly implies that the ART
206*795d594fSAndroid Build Coastguard Worker        // runtime binary itself may exploit these features. Secondly, this implies that
207*795d594fSAndroid Build Coastguard Worker        // the ART runtime passes these feature flags to dex2oat and JIT by calling the
208*795d594fSAndroid Build Coastguard Worker        // method InstructionSetFeatures::FromCppDefines(). Since invoking dex2oat directly
209*795d594fSAndroid Build Coastguard Worker        // does not pick up these flags, cross-compiling from a x86/x86_64 host to a
210*795d594fSAndroid Build Coastguard Worker        // x86/x86_64 target should not be affected.
211*795d594fSAndroid Build Coastguard Worker        linux_x86: {
212*795d594fSAndroid Build Coastguard Worker            cflags: [
213*795d594fSAndroid Build Coastguard Worker                "-msse4.2",
214*795d594fSAndroid Build Coastguard Worker                "-mpopcnt",
215*795d594fSAndroid Build Coastguard Worker            ],
216*795d594fSAndroid Build Coastguard Worker        },
217*795d594fSAndroid Build Coastguard Worker        linux_x86_64: {
218*795d594fSAndroid Build Coastguard Worker            cflags: [
219*795d594fSAndroid Build Coastguard Worker                "-msse4.2",
220*795d594fSAndroid Build Coastguard Worker                "-mpopcnt",
221*795d594fSAndroid Build Coastguard Worker            ],
222*795d594fSAndroid Build Coastguard Worker        },
223*795d594fSAndroid Build Coastguard Worker    },
224*795d594fSAndroid Build Coastguard Worker
225*795d594fSAndroid Build Coastguard Worker    codegen: {
226*795d594fSAndroid Build Coastguard Worker        arm: {
227*795d594fSAndroid Build Coastguard Worker            cflags: ["-DART_ENABLE_CODEGEN_arm"],
228*795d594fSAndroid Build Coastguard Worker        },
229*795d594fSAndroid Build Coastguard Worker        arm64: {
230*795d594fSAndroid Build Coastguard Worker            cflags: ["-DART_ENABLE_CODEGEN_arm64"],
231*795d594fSAndroid Build Coastguard Worker        },
232*795d594fSAndroid Build Coastguard Worker        riscv64: {
233*795d594fSAndroid Build Coastguard Worker            cflags: ["-DART_ENABLE_CODEGEN_riscv64"],
234*795d594fSAndroid Build Coastguard Worker        },
235*795d594fSAndroid Build Coastguard Worker        x86: {
236*795d594fSAndroid Build Coastguard Worker            cflags: ["-DART_ENABLE_CODEGEN_x86"],
237*795d594fSAndroid Build Coastguard Worker        },
238*795d594fSAndroid Build Coastguard Worker        x86_64: {
239*795d594fSAndroid Build Coastguard Worker            cflags: ["-DART_ENABLE_CODEGEN_x86_64"],
240*795d594fSAndroid Build Coastguard Worker        },
241*795d594fSAndroid Build Coastguard Worker    },
242*795d594fSAndroid Build Coastguard Worker
243*795d594fSAndroid Build Coastguard Worker    tidy_checks: art_clang_tidy_errors + art_clang_tidy_disabled,
244*795d594fSAndroid Build Coastguard Worker
245*795d594fSAndroid Build Coastguard Worker    tidy_checks_as_errors: art_clang_tidy_errors,
246*795d594fSAndroid Build Coastguard Worker
247*795d594fSAndroid Build Coastguard Worker    tidy_flags: [
248*795d594fSAndroid Build Coastguard Worker        // The static analyzer treats DCHECK as always enabled; we sometimes get
249*795d594fSAndroid Build Coastguard Worker        // false positives when we use DCHECKs with code that relies on NDEBUG.
250*795d594fSAndroid Build Coastguard Worker        "-extra-arg=-UNDEBUG",
251*795d594fSAndroid Build Coastguard Worker        // clang-tidy complains about functions like:
252*795d594fSAndroid Build Coastguard Worker        // void foo() { CHECK(kIsFooEnabled); /* do foo... */ }
253*795d594fSAndroid Build Coastguard Worker        // not being marked noreturn if kIsFooEnabled is false.
254*795d594fSAndroid Build Coastguard Worker        "-extra-arg=-Wno-missing-noreturn",
255*795d594fSAndroid Build Coastguard Worker        // Because tidy doesn't like our flow checks for compile-time configuration and thinks that
256*795d594fSAndroid Build Coastguard Worker        // the following code is dead (it is, but not for all configurations), disable unreachable
257*795d594fSAndroid Build Coastguard Worker        // code detection in Clang for tidy builds. It is still on for regular build steps, so we
258*795d594fSAndroid Build Coastguard Worker        // will still get the "real" errors.
259*795d594fSAndroid Build Coastguard Worker        "-extra-arg=-Wno-unreachable-code",
260*795d594fSAndroid Build Coastguard Worker    ],
261*795d594fSAndroid Build Coastguard Worker
262*795d594fSAndroid Build Coastguard Worker    min_sdk_version: "31",
263*795d594fSAndroid Build Coastguard Worker}
264*795d594fSAndroid Build Coastguard Worker
265*795d594fSAndroid Build Coastguard Worker// Used to generate binaries that can be backed by transparent hugepages.
266*795d594fSAndroid Build Coastguard Workercc_defaults {
267*795d594fSAndroid Build Coastguard Worker    name: "art_hugepage_defaults",
268*795d594fSAndroid Build Coastguard Worker    arch: {
269*795d594fSAndroid Build Coastguard Worker        arm64: {
270*795d594fSAndroid Build Coastguard Worker            ldflags: ["-z max-page-size=0x200000"],
271*795d594fSAndroid Build Coastguard Worker        },
272*795d594fSAndroid Build Coastguard Worker        riscv64: {
273*795d594fSAndroid Build Coastguard Worker            ldflags: ["-z max-page-size=0x200000"],
274*795d594fSAndroid Build Coastguard Worker        },
275*795d594fSAndroid Build Coastguard Worker        x86_64: {
276*795d594fSAndroid Build Coastguard Worker            ldflags: ["-z max-page-size=0x200000"],
277*795d594fSAndroid Build Coastguard Worker        },
278*795d594fSAndroid Build Coastguard Worker    },
279*795d594fSAndroid Build Coastguard Worker}
280*795d594fSAndroid Build Coastguard Worker
281*795d594fSAndroid Build Coastguard Workercc_defaults {
282*795d594fSAndroid Build Coastguard Worker    name: "art_debug_defaults",
283*795d594fSAndroid Build Coastguard Worker    defaults: ["art_defaults"],
284*795d594fSAndroid Build Coastguard Worker    visibility: ["//art:__subpackages__"],
285*795d594fSAndroid Build Coastguard Worker    cflags: [
286*795d594fSAndroid Build Coastguard Worker        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
287*795d594fSAndroid Build Coastguard Worker        "-DVIXL_DEBUG",
288*795d594fSAndroid Build Coastguard Worker        "-UNDEBUG",
289*795d594fSAndroid Build Coastguard Worker    ] + select(soong_config_variable("art_module", "art_debug_opt_flag"), {
290*795d594fSAndroid Build Coastguard Worker        any @ flag_val: [flag_val],
291*795d594fSAndroid Build Coastguard Worker        default: ["-Og"],
292*795d594fSAndroid Build Coastguard Worker    }),
293*795d594fSAndroid Build Coastguard Worker    asflags: [
294*795d594fSAndroid Build Coastguard Worker        "-UNDEBUG",
295*795d594fSAndroid Build Coastguard Worker    ],
296*795d594fSAndroid Build Coastguard Worker    target: {
297*795d594fSAndroid Build Coastguard Worker        // This has to be duplicated for android and host to make sure it
298*795d594fSAndroid Build Coastguard Worker        // comes after the -Wframe-larger-than warnings inserted by art.go
299*795d594fSAndroid Build Coastguard Worker        // target-specific properties
300*795d594fSAndroid Build Coastguard Worker        android: {
301*795d594fSAndroid Build Coastguard Worker            cflags: ["-Wno-frame-larger-than="],
302*795d594fSAndroid Build Coastguard Worker        },
303*795d594fSAndroid Build Coastguard Worker        host: {
304*795d594fSAndroid Build Coastguard Worker            cflags: ["-Wno-frame-larger-than="],
305*795d594fSAndroid Build Coastguard Worker        },
306*795d594fSAndroid Build Coastguard Worker    },
307*795d594fSAndroid Build Coastguard Worker}
308*795d594fSAndroid Build Coastguard Worker
309*795d594fSAndroid Build Coastguard Worker// A version of conscrypt only for enabling the "-hostdex" version to test ART on host.
310*795d594fSAndroid Build Coastguard Workerjava_library {
311*795d594fSAndroid Build Coastguard Worker    // We need our own name to not clash with the conscrypt library.
312*795d594fSAndroid Build Coastguard Worker    name: "conscrypt-host",
313*795d594fSAndroid Build Coastguard Worker    installable: true,
314*795d594fSAndroid Build Coastguard Worker    hostdex: true,
315*795d594fSAndroid Build Coastguard Worker    static_libs: ["conscrypt-for-host"],
316*795d594fSAndroid Build Coastguard Worker
317*795d594fSAndroid Build Coastguard Worker    // Tests and build files rely on this file to be installed as "conscrypt-hostdex",
318*795d594fSAndroid Build Coastguard Worker    // therefore set a stem. Without it, the file would be installed as
319*795d594fSAndroid Build Coastguard Worker    // "conscrypt-host-hostdex".
320*795d594fSAndroid Build Coastguard Worker    stem: "conscrypt",
321*795d594fSAndroid Build Coastguard Worker    sdk_version: "core_platform",
322*795d594fSAndroid Build Coastguard Worker    target: {
323*795d594fSAndroid Build Coastguard Worker        hostdex: {
324*795d594fSAndroid Build Coastguard Worker            required: ["libjavacrypto"],
325*795d594fSAndroid Build Coastguard Worker        },
326*795d594fSAndroid Build Coastguard Worker        darwin: {
327*795d594fSAndroid Build Coastguard Worker            // required module "libjavacrypto" is disabled on darwin
328*795d594fSAndroid Build Coastguard Worker            enabled: false,
329*795d594fSAndroid Build Coastguard Worker        },
330*795d594fSAndroid Build Coastguard Worker    },
331*795d594fSAndroid Build Coastguard Worker}
332*795d594fSAndroid Build Coastguard Worker
333*795d594fSAndroid Build Coastguard Worker// A version of conscrypt only for the ART fuzzer.
334*795d594fSAndroid Build Coastguard Workerjava_library {
335*795d594fSAndroid Build Coastguard Worker    name: "conscrypt-fuzzer",
336*795d594fSAndroid Build Coastguard Worker    visibility: [
337*795d594fSAndroid Build Coastguard Worker        "//art/tools/fuzzer",
338*795d594fSAndroid Build Coastguard Worker    ],
339*795d594fSAndroid Build Coastguard Worker    static_libs: ["conscrypt-for-host"],
340*795d594fSAndroid Build Coastguard Worker    stem: "conscrypt",
341*795d594fSAndroid Build Coastguard Worker    compile_dex: true,
342*795d594fSAndroid Build Coastguard Worker    sdk_version: "none",
343*795d594fSAndroid Build Coastguard Worker    system_modules: "none",
344*795d594fSAndroid Build Coastguard Worker}
345*795d594fSAndroid Build Coastguard Worker
346*795d594fSAndroid Build Coastguard Worker// A version of core-icu4j only for enabling the "-hostdex" version to test ART on host.
347*795d594fSAndroid Build Coastguard Workerjava_library {
348*795d594fSAndroid Build Coastguard Worker    // We need our own name to not clash with the core-icu4j library.
349*795d594fSAndroid Build Coastguard Worker    name: "core-icu4j-host",
350*795d594fSAndroid Build Coastguard Worker    installable: true,
351*795d594fSAndroid Build Coastguard Worker    hostdex: true,
352*795d594fSAndroid Build Coastguard Worker    static_libs: ["core-icu4j-for-host"],
353*795d594fSAndroid Build Coastguard Worker
354*795d594fSAndroid Build Coastguard Worker    // Tests and build files rely on this file to be installed as "core-icu4j-hostdex",
355*795d594fSAndroid Build Coastguard Worker    // therefore set a stem. Without it, the file would be installed as
356*795d594fSAndroid Build Coastguard Worker    // "core-icu4j-host-hostdex".
357*795d594fSAndroid Build Coastguard Worker    stem: "core-icu4j",
358*795d594fSAndroid Build Coastguard Worker    sdk_version: "core_platform",
359*795d594fSAndroid Build Coastguard Worker    target: {
360*795d594fSAndroid Build Coastguard Worker        hostdex: {
361*795d594fSAndroid Build Coastguard Worker            required: ["libicu_jni"],
362*795d594fSAndroid Build Coastguard Worker        },
363*795d594fSAndroid Build Coastguard Worker    },
364*795d594fSAndroid Build Coastguard Worker}
365