xref: /aosp_15_r20/external/conscrypt/Android.bp (revision cd0cc2e34ba52cdf454361820a14d744e4bd531d)
1*cd0cc2e3SAndroid Build Coastguard Worker//
2*cd0cc2e3SAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project
3*cd0cc2e3SAndroid Build Coastguard Worker//
4*cd0cc2e3SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*cd0cc2e3SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*cd0cc2e3SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*cd0cc2e3SAndroid Build Coastguard Worker//
8*cd0cc2e3SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*cd0cc2e3SAndroid Build Coastguard Worker//
10*cd0cc2e3SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*cd0cc2e3SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*cd0cc2e3SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*cd0cc2e3SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*cd0cc2e3SAndroid Build Coastguard Worker// limitations under the License.
15*cd0cc2e3SAndroid Build Coastguard Worker//
16*cd0cc2e3SAndroid Build Coastguard Worker
17*cd0cc2e3SAndroid Build Coastguard Workerpackage {
18*cd0cc2e3SAndroid Build Coastguard Worker    default_visibility: [
19*cd0cc2e3SAndroid Build Coastguard Worker        ":__subpackages__",
20*cd0cc2e3SAndroid Build Coastguard Worker    ],
21*cd0cc2e3SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_conscrypt_license"],
22*cd0cc2e3SAndroid Build Coastguard Worker}
23*cd0cc2e3SAndroid Build Coastguard Worker
24*cd0cc2e3SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
25*cd0cc2e3SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
26*cd0cc2e3SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
27*cd0cc2e3SAndroid Build Coastguard Worker//
28*cd0cc2e3SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
29*cd0cc2e3SAndroid Build Coastguard Worker//
30*cd0cc2e3SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
31*cd0cc2e3SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
32*cd0cc2e3SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
33*cd0cc2e3SAndroid Build Coastguard Worker//
34*cd0cc2e3SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
35*cd0cc2e3SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
36*cd0cc2e3SAndroid Build Coastguard Worker// used in the current project.
37*cd0cc2e3SAndroid Build Coastguard Worker//
38*cd0cc2e3SAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license
39*cd0cc2e3SAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
40*cd0cc2e3SAndroid Build Coastguard Worker//
41*cd0cc2e3SAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'.
42*cd0cc2e3SAndroid Build Coastguard Worker// See: http://go/android-license-faq
43*cd0cc2e3SAndroid Build Coastguard Workerlicense {
44*cd0cc2e3SAndroid Build Coastguard Worker    name: "external_conscrypt_license",
45*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
46*cd0cc2e3SAndroid Build Coastguard Worker    license_kinds: [
47*cd0cc2e3SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
48*cd0cc2e3SAndroid Build Coastguard Worker        "legacy_unencumbered",
49*cd0cc2e3SAndroid Build Coastguard Worker    ],
50*cd0cc2e3SAndroid Build Coastguard Worker    license_text: [
51*cd0cc2e3SAndroid Build Coastguard Worker        "LICENSE",
52*cd0cc2e3SAndroid Build Coastguard Worker        "NOTICE",
53*cd0cc2e3SAndroid Build Coastguard Worker        "licenses/**/*",
54*cd0cc2e3SAndroid Build Coastguard Worker    ],
55*cd0cc2e3SAndroid Build Coastguard Worker}
56*cd0cc2e3SAndroid Build Coastguard Worker
57*cd0cc2e3SAndroid Build Coastguard Worker//
58*cd0cc2e3SAndroid Build Coastguard Worker// Definitions for building the Conscrypt Java library, native code,
59*cd0cc2e3SAndroid Build Coastguard Worker// and associated tests.
60*cd0cc2e3SAndroid Build Coastguard Worker//
61*cd0cc2e3SAndroid Build Coastguard Worker
62*cd0cc2e3SAndroid Build Coastguard Worker// Conscrypt is divided into subdirectories.
63*cd0cc2e3SAndroid Build Coastguard Worker//
64*cd0cc2e3SAndroid Build Coastguard Worker// The structure is:
65*cd0cc2e3SAndroid Build Coastguard Worker//
66*cd0cc2e3SAndroid Build Coastguard Worker//   constants/
67*cd0cc2e3SAndroid Build Coastguard Worker//       src/gen             # Generates NativeConstants.java.
68*cd0cc2e3SAndroid Build Coastguard Worker//   common/
69*cd0cc2e3SAndroid Build Coastguard Worker//       src/main/java       # Common Java source for all platforms.
70*cd0cc2e3SAndroid Build Coastguard Worker//       src/jni/
71*cd0cc2e3SAndroid Build Coastguard Worker//            main           # Common C++ source for all platforms.
72*cd0cc2e3SAndroid Build Coastguard Worker//            unbundled      # C++ source used for OpenJDK and unbundled Android.
73*cd0cc2e3SAndroid Build Coastguard Worker//       src/test/java       # Common test files for all platforms.
74*cd0cc2e3SAndroid Build Coastguard Worker//   android/
75*cd0cc2e3SAndroid Build Coastguard Worker//       src/main/java       # Java source for unbundled Android.
76*cd0cc2e3SAndroid Build Coastguard Worker//   openjdk/
77*cd0cc2e3SAndroid Build Coastguard Worker//       src/main/java       # Java source for OpenJDK.
78*cd0cc2e3SAndroid Build Coastguard Worker//       src/test
79*cd0cc2e3SAndroid Build Coastguard Worker//            java/          # Java source for common tests.
80*cd0cc2e3SAndroid Build Coastguard Worker//            resources/     # Support files for tests
81*cd0cc2e3SAndroid Build Coastguard Worker//   platform/
82*cd0cc2e3SAndroid Build Coastguard Worker//       src/main/java       # Java source for bundled Android.
83*cd0cc2e3SAndroid Build Coastguard Worker//       src/test
84*cd0cc2e3SAndroid Build Coastguard Worker//            java/          # Java source for bundled tests.
85*cd0cc2e3SAndroid Build Coastguard Worker//
86*cd0cc2e3SAndroid Build Coastguard Worker
87*cd0cc2e3SAndroid Build Coastguard Workercc_defaults {
88*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_global",
89*cd0cc2e3SAndroid Build Coastguard Worker
90*cd0cc2e3SAndroid Build Coastguard Worker    cflags: [
91*cd0cc2e3SAndroid Build Coastguard Worker        "-Wall",
92*cd0cc2e3SAndroid Build Coastguard Worker        "-Wextra",
93*cd0cc2e3SAndroid Build Coastguard Worker        "-Werror",
94*cd0cc2e3SAndroid Build Coastguard Worker        "-Wunused",
95*cd0cc2e3SAndroid Build Coastguard Worker    ],
96*cd0cc2e3SAndroid Build Coastguard Worker
97*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
98*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/cpp/conscrypt/compatibility_close_monitor.cc",
99*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/cpp/conscrypt/jniload.cc",
100*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/cpp/conscrypt/jniutil.cc",
101*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/cpp/conscrypt/native_crypto.cc",
102*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/cpp/conscrypt/netutil.cc",
103*cd0cc2e3SAndroid Build Coastguard Worker    ],
104*cd0cc2e3SAndroid Build Coastguard Worker
105*cd0cc2e3SAndroid Build Coastguard Worker    header_libs: ["jni_headers"],
106*cd0cc2e3SAndroid Build Coastguard Worker
107*cd0cc2e3SAndroid Build Coastguard Worker    local_include_dirs: [
108*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/main/include",
109*cd0cc2e3SAndroid Build Coastguard Worker    ],
110*cd0cc2e3SAndroid Build Coastguard Worker
111*cd0cc2e3SAndroid Build Coastguard Worker    compile_multilib: "both",
112*cd0cc2e3SAndroid Build Coastguard Worker    stl: "c++_static",
113*cd0cc2e3SAndroid Build Coastguard Worker}
114*cd0cc2e3SAndroid Build Coastguard Worker
115*cd0cc2e3SAndroid Build Coastguard Workercc_defaults {
116*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_unbundled-jni-defaults",
117*cd0cc2e3SAndroid Build Coastguard Worker
118*cd0cc2e3SAndroid Build Coastguard Worker    local_include_dirs: [
119*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/unbundled/include",
120*cd0cc2e3SAndroid Build Coastguard Worker    ],
121*cd0cc2e3SAndroid Build Coastguard Worker
122*cd0cc2e3SAndroid Build Coastguard Worker    header_libs: ["jni_headers"],
123*cd0cc2e3SAndroid Build Coastguard Worker
124*cd0cc2e3SAndroid Build Coastguard Worker    shared_libs: [
125*cd0cc2e3SAndroid Build Coastguard Worker        "liblog",
126*cd0cc2e3SAndroid Build Coastguard Worker    ],
127*cd0cc2e3SAndroid Build Coastguard Worker
128*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
129*cd0cc2e3SAndroid Build Coastguard Worker        "libssl",
130*cd0cc2e3SAndroid Build Coastguard Worker        "libcrypto_static",
131*cd0cc2e3SAndroid Build Coastguard Worker    ],
132*cd0cc2e3SAndroid Build Coastguard Worker
133*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "9",
134*cd0cc2e3SAndroid Build Coastguard Worker}
135*cd0cc2e3SAndroid Build Coastguard Worker
136*cd0cc2e3SAndroid Build Coastguard Workercc_library {
137*cd0cc2e3SAndroid Build Coastguard Worker    name: "libconscrypt_jni",
138*cd0cc2e3SAndroid Build Coastguard Worker    defaults: [
139*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt_global",
140*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt_unbundled-jni-defaults",
141*cd0cc2e3SAndroid Build Coastguard Worker    ],
142*cd0cc2e3SAndroid Build Coastguard Worker}
143*cd0cc2e3SAndroid Build Coastguard Worker
144*cd0cc2e3SAndroid Build Coastguard Workercc_library_host_shared {
145*cd0cc2e3SAndroid Build Coastguard Worker    name: "libconscrypt_openjdk_jni",
146*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
147*cd0cc2e3SAndroid Build Coastguard Worker        "//build/make/tools/signapk",
148*cd0cc2e3SAndroid Build Coastguard Worker        "//cts/hostsidetests/library", // from CtsUseNativeLibraryBuildPackage
149*cd0cc2e3SAndroid Build Coastguard Worker        "//tools/apksig",
150*cd0cc2e3SAndroid Build Coastguard Worker        "//vendor:__subpackages__",
151*cd0cc2e3SAndroid Build Coastguard Worker    ],
152*cd0cc2e3SAndroid Build Coastguard Worker    defaults: ["conscrypt_global"],
153*cd0cc2e3SAndroid Build Coastguard Worker
154*cd0cc2e3SAndroid Build Coastguard Worker    cflags: [
155*cd0cc2e3SAndroid Build Coastguard Worker        "-DCONSCRYPT_OPENJDK",
156*cd0cc2e3SAndroid Build Coastguard Worker    ],
157*cd0cc2e3SAndroid Build Coastguard Worker
158*cd0cc2e3SAndroid Build Coastguard Worker    local_include_dirs: [
159*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/jni/unbundled/include",
160*cd0cc2e3SAndroid Build Coastguard Worker    ],
161*cd0cc2e3SAndroid Build Coastguard Worker
162*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
163*cd0cc2e3SAndroid Build Coastguard Worker        "libssl",
164*cd0cc2e3SAndroid Build Coastguard Worker        "libcrypto_static",
165*cd0cc2e3SAndroid Build Coastguard Worker    ],
166*cd0cc2e3SAndroid Build Coastguard Worker
167*cd0cc2e3SAndroid Build Coastguard Worker    // TODO: b/26097626. ASAN breaks use of this library in JVM.
168*cd0cc2e3SAndroid Build Coastguard Worker    // Re-enable sanitization when the issue with making clients of this library
169*cd0cc2e3SAndroid Build Coastguard Worker    // preload ASAN runtime is resolved. Without that, clients are getting runtime
170*cd0cc2e3SAndroid Build Coastguard Worker    // errors due to unresolved ASAN symbols, such as
171*cd0cc2e3SAndroid Build Coastguard Worker    // __asan_option_detect_stack_use_after_return.
172*cd0cc2e3SAndroid Build Coastguard Worker    sanitize: {
173*cd0cc2e3SAndroid Build Coastguard Worker        never: true,
174*cd0cc2e3SAndroid Build Coastguard Worker    },
175*cd0cc2e3SAndroid Build Coastguard Worker
176*cd0cc2e3SAndroid Build Coastguard Worker    stl: "libc++_static",
177*cd0cc2e3SAndroid Build Coastguard Worker
178*cd0cc2e3SAndroid Build Coastguard Worker    // The post-build signing tools need signapk.jar and its shared libs
179*cd0cc2e3SAndroid Build Coastguard Worker    multilib: {
180*cd0cc2e3SAndroid Build Coastguard Worker        lib64: {
181*cd0cc2e3SAndroid Build Coastguard Worker            dist: {
182*cd0cc2e3SAndroid Build Coastguard Worker                targets: ["droidcore"],
183*cd0cc2e3SAndroid Build Coastguard Worker            },
184*cd0cc2e3SAndroid Build Coastguard Worker        },
185*cd0cc2e3SAndroid Build Coastguard Worker    },
186*cd0cc2e3SAndroid Build Coastguard Worker}
187*cd0cc2e3SAndroid Build Coastguard Worker
188*cd0cc2e3SAndroid Build Coastguard Workeraconfig_declarations {
189*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-aconfig-flags",
190*cd0cc2e3SAndroid Build Coastguard Worker    package: "com.android.org.conscrypt.flags",
191*cd0cc2e3SAndroid Build Coastguard Worker    container: "com.android.conscrypt",
192*cd0cc2e3SAndroid Build Coastguard Worker    srcs: ["conscrypt.aconfig"],
193*cd0cc2e3SAndroid Build Coastguard Worker    exportable: true,
194*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
195*cd0cc2e3SAndroid Build Coastguard Worker        "//frameworks/base",
196*cd0cc2e3SAndroid Build Coastguard Worker    ],
197*cd0cc2e3SAndroid Build Coastguard Worker}
198*cd0cc2e3SAndroid Build Coastguard Worker
199*cd0cc2e3SAndroid Build Coastguard Workerjava_aconfig_library {
200*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-aconfig-flags-lib",
201*cd0cc2e3SAndroid Build Coastguard Worker    aconfig_declarations: "conscrypt-aconfig-flags",
202*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-intra-core-api-stubs-system-modules",
203*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
204*cd0cc2e3SAndroid Build Coastguard Worker        "aconfig-annotations-lib-sdk-none",
205*cd0cc2e3SAndroid Build Coastguard Worker        "unsupportedappusage",
206*cd0cc2e3SAndroid Build Coastguard Worker    ],
207*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
208*cd0cc2e3SAndroid Build Coastguard Worker    patch_module: "java.base",
209*cd0cc2e3SAndroid Build Coastguard Worker    apex_available: [
210*cd0cc2e3SAndroid Build Coastguard Worker        "com.android.conscrypt",
211*cd0cc2e3SAndroid Build Coastguard Worker    ],
212*cd0cc2e3SAndroid Build Coastguard Worker    min_sdk_version: "30",
213*cd0cc2e3SAndroid Build Coastguard Worker    installable: false,
214*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
215*cd0cc2e3SAndroid Build Coastguard Worker        "//cts/tests/tests/networksecurityconfig:__subpackages__",
216*cd0cc2e3SAndroid Build Coastguard Worker    ],
217*cd0cc2e3SAndroid Build Coastguard Worker}
218*cd0cc2e3SAndroid Build Coastguard Worker
219*cd0cc2e3SAndroid Build Coastguard Workercc_binary_host {
220*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_generate_constants",
221*cd0cc2e3SAndroid Build Coastguard Worker    srcs: ["constants/src/gen/cpp/generate_constants.cc"],
222*cd0cc2e3SAndroid Build Coastguard Worker    cflags: [
223*cd0cc2e3SAndroid Build Coastguard Worker        "-Wall",
224*cd0cc2e3SAndroid Build Coastguard Worker        "-Werror",
225*cd0cc2e3SAndroid Build Coastguard Worker    ],
226*cd0cc2e3SAndroid Build Coastguard Worker    shared_libs: [
227*cd0cc2e3SAndroid Build Coastguard Worker        "libcrypto",
228*cd0cc2e3SAndroid Build Coastguard Worker        "libssl",
229*cd0cc2e3SAndroid Build Coastguard Worker    ],
230*cd0cc2e3SAndroid Build Coastguard Worker}
231*cd0cc2e3SAndroid Build Coastguard Worker
232*cd0cc2e3SAndroid Build Coastguard Workergenrule {
233*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-unbundled_generated_constants",
234*cd0cc2e3SAndroid Build Coastguard Worker    out: ["org/conscrypt/NativeConstants.java"],
235*cd0cc2e3SAndroid Build Coastguard Worker    cmd: "$(location conscrypt_generate_constants) > $(out)",
236*cd0cc2e3SAndroid Build Coastguard Worker    tools: ["conscrypt_generate_constants"],
237*cd0cc2e3SAndroid Build Coastguard Worker}
238*cd0cc2e3SAndroid Build Coastguard Worker
239*cd0cc2e3SAndroid Build Coastguard Workergenrule {
240*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_generated_constants",
241*cd0cc2e3SAndroid Build Coastguard Worker    out: ["com/android/org/conscrypt/NativeConstants.java"],
242*cd0cc2e3SAndroid Build Coastguard Worker    cmd: "$(location conscrypt_generate_constants) com.android.org.conscrypt > $(out)",
243*cd0cc2e3SAndroid Build Coastguard Worker    tools: ["conscrypt_generate_constants"],
244*cd0cc2e3SAndroid Build Coastguard Worker}
245*cd0cc2e3SAndroid Build Coastguard Worker
246*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
247*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_java_files",
248*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
249*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/common/src/main/java/**/*.java",
250*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/platform/src/main/java/**/*.java",
251*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_generated_constants",
252*cd0cc2e3SAndroid Build Coastguard Worker    ],
253*cd0cc2e3SAndroid Build Coastguard Worker}
254*cd0cc2e3SAndroid Build Coastguard Worker
255*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
256*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt_public_api_files",
257*cd0cc2e3SAndroid Build Coastguard Worker    srcs: ["publicapi/src/main/java/**/*.java"],
258*cd0cc2e3SAndroid Build Coastguard Worker    path: "publicapi/src/main/java",
259*cd0cc2e3SAndroid Build Coastguard Worker}
260*cd0cc2e3SAndroid Build Coastguard Worker
261*cd0cc2e3SAndroid Build Coastguard Worker// Create the conscrypt library from the source produced by the srcgen/generate_android_src.sh
262*cd0cc2e3SAndroid Build Coastguard Worker// script.
263*cd0cc2e3SAndroid Build Coastguard Workerjava_library {
264*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt",
265*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
266*cd0cc2e3SAndroid Build Coastguard Worker        "//device:__subpackages__",
267*cd0cc2e3SAndroid Build Coastguard Worker        ":__subpackages__",
268*cd0cc2e3SAndroid Build Coastguard Worker    ],
269*cd0cc2e3SAndroid Build Coastguard Worker    apex_available: [
270*cd0cc2e3SAndroid Build Coastguard Worker        "com.android.conscrypt",
271*cd0cc2e3SAndroid Build Coastguard Worker        "test_com.android.conscrypt",
272*cd0cc2e3SAndroid Build Coastguard Worker    ],
273*cd0cc2e3SAndroid Build Coastguard Worker    // Conscrypt should support R
274*cd0cc2e3SAndroid Build Coastguard Worker    min_sdk_version: "30",
275*cd0cc2e3SAndroid Build Coastguard Worker
276*cd0cc2e3SAndroid Build Coastguard Worker    installable: true,
277*cd0cc2e3SAndroid Build Coastguard Worker    // Hostdex is only for ART testing on host: ART build file has its
278*cd0cc2e3SAndroid Build Coastguard Worker    // own hostdex support for conscrypt.
279*cd0cc2e3SAndroid Build Coastguard Worker    hostdex: false,
280*cd0cc2e3SAndroid Build Coastguard Worker
281*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
282*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_java_files",
283*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_public_api_files",
284*cd0cc2e3SAndroid Build Coastguard Worker    ],
285*cd0cc2e3SAndroid Build Coastguard Worker
286*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
287*cd0cc2e3SAndroid Build Coastguard Worker        "framework-annotations-lib",
288*cd0cc2e3SAndroid Build Coastguard Worker        "unsupportedappusage",
289*cd0cc2e3SAndroid Build Coastguard Worker    ],
290*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
291*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt-aconfig-flags-lib",
292*cd0cc2e3SAndroid Build Coastguard Worker    ],
293*cd0cc2e3SAndroid Build Coastguard Worker
294*cd0cc2e3SAndroid Build Coastguard Worker    // Conscrypt can be updated independently from the other core libraries so it must only depend
295*cd0cc2e3SAndroid Build Coastguard Worker    // on public SDK and intra-core APIs.
296*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
297*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-intra-core-api-stubs-system-modules",
298*cd0cc2e3SAndroid Build Coastguard Worker    patch_module: "java.base",
299*cd0cc2e3SAndroid Build Coastguard Worker
300*cd0cc2e3SAndroid Build Coastguard Worker    target: {
301*cd0cc2e3SAndroid Build Coastguard Worker        // boringssl_self_test needed in both /system/bin and /apex/com.android.conscrypt/bin
302*cd0cc2e3SAndroid Build Coastguard Worker        // prng_seeder is only needed in /system/bin
303*cd0cc2e3SAndroid Build Coastguard Worker        // The required directive is here rather than under boringssl to avoid circular
304*cd0cc2e3SAndroid Build Coastguard Worker        // dependencies.
305*cd0cc2e3SAndroid Build Coastguard Worker        android: {
306*cd0cc2e3SAndroid Build Coastguard Worker            required: [
307*cd0cc2e3SAndroid Build Coastguard Worker                "boringssl_self_test",
308*cd0cc2e3SAndroid Build Coastguard Worker                "prng_seeder",
309*cd0cc2e3SAndroid Build Coastguard Worker            ],
310*cd0cc2e3SAndroid Build Coastguard Worker        },
311*cd0cc2e3SAndroid Build Coastguard Worker    },
312*cd0cc2e3SAndroid Build Coastguard Worker
313*cd0cc2e3SAndroid Build Coastguard Worker    permitted_packages: [
314*cd0cc2e3SAndroid Build Coastguard Worker        "android.net.ssl",
315*cd0cc2e3SAndroid Build Coastguard Worker        "com.android.org.conscrypt",
316*cd0cc2e3SAndroid Build Coastguard Worker    ],
317*cd0cc2e3SAndroid Build Coastguard Worker}
318*cd0cc2e3SAndroid Build Coastguard Worker
319*cd0cc2e3SAndroid Build Coastguard Worker// Java library for use on host, e.g. by robolectric.
320*cd0cc2e3SAndroid Build Coastguard Workerjava_library {
321*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-for-host",
322*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
323*cd0cc2e3SAndroid Build Coastguard Worker        "//art/build",
324*cd0cc2e3SAndroid Build Coastguard Worker        "//external/robolectric-shadows",
325*cd0cc2e3SAndroid Build Coastguard Worker        "//external/robolectric",
326*cd0cc2e3SAndroid Build Coastguard Worker        "//frameworks/layoutlib",
327*cd0cc2e3SAndroid Build Coastguard Worker    ],
328*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
329*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt",
330*cd0cc2e3SAndroid Build Coastguard Worker    ],
331*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
332*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "none",
333*cd0cc2e3SAndroid Build Coastguard Worker}
334*cd0cc2e3SAndroid Build Coastguard Worker
335*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.platform.api.
336*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
337*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.platform.api.api.combined.public.latest",
338*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
339*cd0cc2e3SAndroid Build Coastguard Worker        "api/platform/last-api.txt",
340*cd0cc2e3SAndroid Build Coastguard Worker    ],
341*cd0cc2e3SAndroid Build Coastguard Worker}
342*cd0cc2e3SAndroid Build Coastguard Worker
343*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.platform.api.
344*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
345*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.platform.api-removed.api.combined.public.latest",
346*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
347*cd0cc2e3SAndroid Build Coastguard Worker        "api/platform/last-removed.txt",
348*cd0cc2e3SAndroid Build Coastguard Worker    ],
349*cd0cc2e3SAndroid Build Coastguard Worker}
350*cd0cc2e3SAndroid Build Coastguard Worker
351*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.platform.api.
352*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
353*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.platform.api-incompatibilities.api.public.latest",
354*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
355*cd0cc2e3SAndroid Build Coastguard Worker        "api/platform/last-incompatibilities.txt",
356*cd0cc2e3SAndroid Build Coastguard Worker    ],
357*cd0cc2e3SAndroid Build Coastguard Worker}
358*cd0cc2e3SAndroid Build Coastguard Worker
359*cd0cc2e3SAndroid Build Coastguard Worker// A library containing the core platform API stubs of the Conscrypt module.
360*cd0cc2e3SAndroid Build Coastguard Worker//
361*cd0cc2e3SAndroid Build Coastguard Worker// Core platform APIs are only intended for use of other parts of the platform, not the
362*cd0cc2e3SAndroid Build Coastguard Worker// core library modules.
363*cd0cc2e3SAndroid Build Coastguard Worker//
364*cd0cc2e3SAndroid Build Coastguard Worker// The API specification .txt files managed by this only contain the additional
365*cd0cc2e3SAndroid Build Coastguard Worker// classes/members that are in the platform API but which are not in the public
366*cd0cc2e3SAndroid Build Coastguard Worker// API.
367*cd0cc2e3SAndroid Build Coastguard Worker//
368*cd0cc2e3SAndroid Build Coastguard Worker// Note that this entire API surface is considered stable in the sense described in
369*cd0cc2e3SAndroid Build Coastguard Worker// libcore/mmodules/core_platform_api/Android.bp.
370*cd0cc2e3SAndroid Build Coastguard Workerjava_sdk_library {
371*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.platform.api",
372*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
373*cd0cc2e3SAndroid Build Coastguard Worker        "//build/soong/java/core-libraries",
374*cd0cc2e3SAndroid Build Coastguard Worker        "//external/wycheproof",
375*cd0cc2e3SAndroid Build Coastguard Worker        // Visibility for prebuilt conscrypt-module-sdk from the prebuilt of
376*cd0cc2e3SAndroid Build Coastguard Worker        // this module.
377*cd0cc2e3SAndroid Build Coastguard Worker        // TODO(b/155921753): Restrict this when prebuilts are in their proper
378*cd0cc2e3SAndroid Build Coastguard Worker        // locations.
379*cd0cc2e3SAndroid Build Coastguard Worker        "//prebuilts:__subpackages__",
380*cd0cc2e3SAndroid Build Coastguard Worker
381*cd0cc2e3SAndroid Build Coastguard Worker        // DO NOT REMOVE: Legacy visibility, needed for snapshots that are
382*cd0cc2e3SAndroid Build Coastguard Worker        // generated for the S build.
383*cd0cc2e3SAndroid Build Coastguard Worker        "//libcore/mmodules/core_platform_api",
384*cd0cc2e3SAndroid Build Coastguard Worker    ],
385*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
386*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_java_files",
387*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_public_api_files",
388*cd0cc2e3SAndroid Build Coastguard Worker    ],
389*cd0cc2e3SAndroid Build Coastguard Worker    api_dir: "api/platform",
390*cd0cc2e3SAndroid Build Coastguard Worker    api_only: true,
391*cd0cc2e3SAndroid Build Coastguard Worker    api_lint: {
392*cd0cc2e3SAndroid Build Coastguard Worker        enabled: true,
393*cd0cc2e3SAndroid Build Coastguard Worker    },
394*cd0cc2e3SAndroid Build Coastguard Worker    droiddoc_options: [
395*cd0cc2e3SAndroid Build Coastguard Worker        "--hide-annotation libcore.api.Hide",
396*cd0cc2e3SAndroid Build Coastguard Worker        // Include the "public" API in the "platform" API.
397*cd0cc2e3SAndroid Build Coastguard Worker        "--show-unannotated",
398*cd0cc2e3SAndroid Build Coastguard Worker        "--show-single-annotation libcore.api.CorePlatformApi\\(status=libcore.api.CorePlatformApi.Status.STABLE\\)",
399*cd0cc2e3SAndroid Build Coastguard Worker    ],
400*cd0cc2e3SAndroid Build Coastguard Worker    hostdex: true,
401*cd0cc2e3SAndroid Build Coastguard Worker
402*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
403*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-lib-api-stubs-system-modules",
404*cd0cc2e3SAndroid Build Coastguard Worker
405*cd0cc2e3SAndroid Build Coastguard Worker    dist_group: "android",
406*cd0cc2e3SAndroid Build Coastguard Worker    dist_stem: "conscrypt-coreplatform",
407*cd0cc2e3SAndroid Build Coastguard Worker    // TODO: remove this when Conscrypt's @CorePlatformApi has been migrated to @SystemApi
408*cd0cc2e3SAndroid Build Coastguard Worker    unsafe_ignore_missing_latest_api: true,
409*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
410*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt-aconfig-flags-lib",
411*cd0cc2e3SAndroid Build Coastguard Worker    ],
412*cd0cc2e3SAndroid Build Coastguard Worker}
413*cd0cc2e3SAndroid Build Coastguard Worker
414*cd0cc2e3SAndroid Build Coastguard Worker// A library containing the public API stubs of the Conscrypt module.
415*cd0cc2e3SAndroid Build Coastguard Workerjava_sdk_library {
416*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.public.api",
417*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
418*cd0cc2e3SAndroid Build Coastguard Worker        "//build/soong/java/core-libraries",
419*cd0cc2e3SAndroid Build Coastguard Worker        "//frameworks/base",
420*cd0cc2e3SAndroid Build Coastguard Worker        "//frameworks/base/api",
421*cd0cc2e3SAndroid Build Coastguard Worker        "//packages/modules/common/sdk",
422*cd0cc2e3SAndroid Build Coastguard Worker        // TODO(b/165823103): Remove visiblity for IPsec once CorePlatformApi is available
423*cd0cc2e3SAndroid Build Coastguard Worker        "//packages/modules/IPsec",
424*cd0cc2e3SAndroid Build Coastguard Worker        // Visibility for prebuilt art-module-host-exports from the prebuilt of
425*cd0cc2e3SAndroid Build Coastguard Worker        // this module.
426*cd0cc2e3SAndroid Build Coastguard Worker        // TODO(b/155921753): Restrict this when prebuilts are in their proper
427*cd0cc2e3SAndroid Build Coastguard Worker        // locations.
428*cd0cc2e3SAndroid Build Coastguard Worker        "//prebuilts:__subpackages__",
429*cd0cc2e3SAndroid Build Coastguard Worker
430*cd0cc2e3SAndroid Build Coastguard Worker        // DO NOT REMOVE: Legacy visibility, needed for snapshots that are
431*cd0cc2e3SAndroid Build Coastguard Worker        // generated for the S build.
432*cd0cc2e3SAndroid Build Coastguard Worker        "//libcore",
433*cd0cc2e3SAndroid Build Coastguard Worker    ],
434*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
435*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_public_api_files",
436*cd0cc2e3SAndroid Build Coastguard Worker    ],
437*cd0cc2e3SAndroid Build Coastguard Worker
438*cd0cc2e3SAndroid Build Coastguard Worker    // The base name for the artifacts that are automatically published to the
439*cd0cc2e3SAndroid Build Coastguard Worker    // dist and which end up in one of the sub-directories of prebuilts/sdk.
440*cd0cc2e3SAndroid Build Coastguard Worker    // As long as this matches the name of the artifacts in prebuilts/sdk then
441*cd0cc2e3SAndroid Build Coastguard Worker    // the API will be checked for compatibility against the latest released
442*cd0cc2e3SAndroid Build Coastguard Worker    // version of the API.
443*cd0cc2e3SAndroid Build Coastguard Worker    dist_stem: "conscrypt",
444*cd0cc2e3SAndroid Build Coastguard Worker
445*cd0cc2e3SAndroid Build Coastguard Worker    public: {
446*cd0cc2e3SAndroid Build Coastguard Worker        enabled: true,
447*cd0cc2e3SAndroid Build Coastguard Worker    },
448*cd0cc2e3SAndroid Build Coastguard Worker    system: {
449*cd0cc2e3SAndroid Build Coastguard Worker        enabled: true,
450*cd0cc2e3SAndroid Build Coastguard Worker    },
451*cd0cc2e3SAndroid Build Coastguard Worker    module_lib: {
452*cd0cc2e3SAndroid Build Coastguard Worker        enabled: true,
453*cd0cc2e3SAndroid Build Coastguard Worker    },
454*cd0cc2e3SAndroid Build Coastguard Worker
455*cd0cc2e3SAndroid Build Coastguard Worker    api_dir: "api/public",
456*cd0cc2e3SAndroid Build Coastguard Worker    api_only: true,
457*cd0cc2e3SAndroid Build Coastguard Worker
458*cd0cc2e3SAndroid Build Coastguard Worker    // Emit nullability annotations from the source to the stub files.
459*cd0cc2e3SAndroid Build Coastguard Worker    annotations_enabled: true,
460*cd0cc2e3SAndroid Build Coastguard Worker
461*cd0cc2e3SAndroid Build Coastguard Worker    java_version: "1.9",
462*cd0cc2e3SAndroid Build Coastguard Worker
463*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
464*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-public-api-stubs-system-modules",
465*cd0cc2e3SAndroid Build Coastguard Worker    dist_group: "android",
466*cd0cc2e3SAndroid Build Coastguard Worker}
467*cd0cc2e3SAndroid Build Coastguard Worker
468*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.intra.core.api.
469*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
470*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.intra.core.api.api.combined.public.latest",
471*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
472*cd0cc2e3SAndroid Build Coastguard Worker        "api/intra/last-api.txt",
473*cd0cc2e3SAndroid Build Coastguard Worker    ],
474*cd0cc2e3SAndroid Build Coastguard Worker}
475*cd0cc2e3SAndroid Build Coastguard Worker
476*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.intra.core.api.
477*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
478*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.intra.core.api-removed.api.combined.public.latest",
479*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
480*cd0cc2e3SAndroid Build Coastguard Worker        "api/intra/last-removed.txt",
481*cd0cc2e3SAndroid Build Coastguard Worker    ],
482*cd0cc2e3SAndroid Build Coastguard Worker}
483*cd0cc2e3SAndroid Build Coastguard Worker
484*cd0cc2e3SAndroid Build Coastguard Worker// Referenced implicitly from conscrypt.module.intra.core.api.
485*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
486*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.intra.core.api-incompatibilities.api.public.latest",
487*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
488*cd0cc2e3SAndroid Build Coastguard Worker        "api/intra/last-incompatibilities.txt",
489*cd0cc2e3SAndroid Build Coastguard Worker    ],
490*cd0cc2e3SAndroid Build Coastguard Worker}
491*cd0cc2e3SAndroid Build Coastguard Worker
492*cd0cc2e3SAndroid Build Coastguard Worker// A library containing the intra-core API stubs of the Conscrypt module.
493*cd0cc2e3SAndroid Build Coastguard Worker//
494*cd0cc2e3SAndroid Build Coastguard Worker// Intra-core APIs are only intended for the use of other core library modules.
495*cd0cc2e3SAndroid Build Coastguard Worker//
496*cd0cc2e3SAndroid Build Coastguard Worker// The API specification .txt files managed by this only contain the additional
497*cd0cc2e3SAndroid Build Coastguard Worker// classes/members that are in the intra-core API but which are not the public API.
498*cd0cc2e3SAndroid Build Coastguard Workerjava_sdk_library {
499*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt.module.intra.core.api",
500*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
501*cd0cc2e3SAndroid Build Coastguard Worker        "//external/okhttp",
502*cd0cc2e3SAndroid Build Coastguard Worker        "//libcore:__subpackages__",
503*cd0cc2e3SAndroid Build Coastguard Worker        // Visibility for prebuilt conscrypt-module-sdk from the prebuilt of
504*cd0cc2e3SAndroid Build Coastguard Worker        // this module.
505*cd0cc2e3SAndroid Build Coastguard Worker        // TODO(b/155921753): Restrict this when prebuilts are in their proper
506*cd0cc2e3SAndroid Build Coastguard Worker        // locations.
507*cd0cc2e3SAndroid Build Coastguard Worker        "//prebuilts:__subpackages__",
508*cd0cc2e3SAndroid Build Coastguard Worker    ],
509*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
510*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_java_files",
511*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt_public_api_files",
512*cd0cc2e3SAndroid Build Coastguard Worker    ],
513*cd0cc2e3SAndroid Build Coastguard Worker    api_dir: "api/intra",
514*cd0cc2e3SAndroid Build Coastguard Worker    api_only: true,
515*cd0cc2e3SAndroid Build Coastguard Worker    droiddoc_options: [
516*cd0cc2e3SAndroid Build Coastguard Worker        "--hide-annotation libcore.api.Hide",
517*cd0cc2e3SAndroid Build Coastguard Worker        "--show-single-annotation libcore.api.IntraCoreApi",
518*cd0cc2e3SAndroid Build Coastguard Worker    ],
519*cd0cc2e3SAndroid Build Coastguard Worker
520*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
521*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-intra-core-api-stubs-system-modules",
522*cd0cc2e3SAndroid Build Coastguard Worker
523*cd0cc2e3SAndroid Build Coastguard Worker    // This module's output stubs contain apis defined in "conscrypt.module.public.api.stubs",
524*cd0cc2e3SAndroid Build Coastguard Worker    // but adding "conscrypt.module.public.api" as a dependency of this module leads to circular
525*cd0cc2e3SAndroid Build Coastguard Worker    // dependency and requires further bootstrapping. Thus, disable stubs generation from the
526*cd0cc2e3SAndroid Build Coastguard Worker    // api signature files and generate stubs from the source Java files instead.
527*cd0cc2e3SAndroid Build Coastguard Worker    build_from_text_stub: false,
528*cd0cc2e3SAndroid Build Coastguard Worker
529*cd0cc2e3SAndroid Build Coastguard Worker    // Don't copy any output files to the dist.
530*cd0cc2e3SAndroid Build Coastguard Worker    no_dist: true,
531*cd0cc2e3SAndroid Build Coastguard Worker}
532*cd0cc2e3SAndroid Build Coastguard Worker
533*cd0cc2e3SAndroid Build Coastguard Worker// Platform conscrypt crypto JNI library
534*cd0cc2e3SAndroid Build Coastguard Workercc_defaults {
535*cd0cc2e3SAndroid Build Coastguard Worker    name: "libjavacrypto-defaults",
536*cd0cc2e3SAndroid Build Coastguard Worker
537*cd0cc2e3SAndroid Build Coastguard Worker    cflags: [
538*cd0cc2e3SAndroid Build Coastguard Worker        "-Wall",
539*cd0cc2e3SAndroid Build Coastguard Worker        "-Wextra",
540*cd0cc2e3SAndroid Build Coastguard Worker        "-Werror",
541*cd0cc2e3SAndroid Build Coastguard Worker        "-Wunused",
542*cd0cc2e3SAndroid Build Coastguard Worker        "-fvisibility=hidden",
543*cd0cc2e3SAndroid Build Coastguard Worker    ],
544*cd0cc2e3SAndroid Build Coastguard Worker
545*cd0cc2e3SAndroid Build Coastguard Worker    srcs: ["common/src/jni/main/cpp/**/*.cc"],
546*cd0cc2e3SAndroid Build Coastguard Worker    header_libs: ["jni_headers"],
547*cd0cc2e3SAndroid Build Coastguard Worker    local_include_dirs: ["common/src/jni/main/include"],
548*cd0cc2e3SAndroid Build Coastguard Worker}
549*cd0cc2e3SAndroid Build Coastguard Worker
550*cd0cc2e3SAndroid Build Coastguard Worker// Platform conscrypt crypto JNI library
551*cd0cc2e3SAndroid Build Coastguard Workercc_library_shared {
552*cd0cc2e3SAndroid Build Coastguard Worker    name: "libjavacrypto",
553*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
554*cd0cc2e3SAndroid Build Coastguard Worker    defaults: ["libjavacrypto-defaults"],
555*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
556*cd0cc2e3SAndroid Build Coastguard Worker        ":__subpackages__",
557*cd0cc2e3SAndroid Build Coastguard Worker        "//art/tools/ahat",
558*cd0cc2e3SAndroid Build Coastguard Worker    ],
559*cd0cc2e3SAndroid Build Coastguard Worker    cflags: ["-DJNI_JARJAR_PREFIX=com/android/"],
560*cd0cc2e3SAndroid Build Coastguard Worker    header_libs: ["libnativehelper_header_only"],
561*cd0cc2e3SAndroid Build Coastguard Worker    shared_libs: ["liblog"],
562*cd0cc2e3SAndroid Build Coastguard Worker
563*cd0cc2e3SAndroid Build Coastguard Worker    target: {
564*cd0cc2e3SAndroid Build Coastguard Worker        darwin: {
565*cd0cc2e3SAndroid Build Coastguard Worker            enabled: false,
566*cd0cc2e3SAndroid Build Coastguard Worker        },
567*cd0cc2e3SAndroid Build Coastguard Worker        android: {
568*cd0cc2e3SAndroid Build Coastguard Worker            runtime_libs: ["libandroidio"],
569*cd0cc2e3SAndroid Build Coastguard Worker            shared_libs: [
570*cd0cc2e3SAndroid Build Coastguard Worker                "libcrypto",
571*cd0cc2e3SAndroid Build Coastguard Worker                "libssl",
572*cd0cc2e3SAndroid Build Coastguard Worker            ],
573*cd0cc2e3SAndroid Build Coastguard Worker        },
574*cd0cc2e3SAndroid Build Coastguard Worker        not_windows: {
575*cd0cc2e3SAndroid Build Coastguard Worker            runtime_libs: ["libandroidio"],
576*cd0cc2e3SAndroid Build Coastguard Worker            // Link libcrypto and libssl statically on host, to ensure they stay current in
577*cd0cc2e3SAndroid Build Coastguard Worker            // the prebuilt that's included in conscrypt-module-test-exports.
578*cd0cc2e3SAndroid Build Coastguard Worker            static_libs: [
579*cd0cc2e3SAndroid Build Coastguard Worker                "libcrypto",
580*cd0cc2e3SAndroid Build Coastguard Worker                "libssl",
581*cd0cc2e3SAndroid Build Coastguard Worker            ],
582*cd0cc2e3SAndroid Build Coastguard Worker        },
583*cd0cc2e3SAndroid Build Coastguard Worker    },
584*cd0cc2e3SAndroid Build Coastguard Worker    apex_available: [
585*cd0cc2e3SAndroid Build Coastguard Worker        "com.android.conscrypt",
586*cd0cc2e3SAndroid Build Coastguard Worker        "test_com.android.conscrypt",
587*cd0cc2e3SAndroid Build Coastguard Worker    ],
588*cd0cc2e3SAndroid Build Coastguard Worker    min_sdk_version: "30",
589*cd0cc2e3SAndroid Build Coastguard Worker}
590*cd0cc2e3SAndroid Build Coastguard Worker
591*cd0cc2e3SAndroid Build Coastguard Worker// Unbundled Conscrypt jar for use by signapk and apksigner tool
592*cd0cc2e3SAndroid Build Coastguard Worker//
593*cd0cc2e3SAndroid Build Coastguard Worker// Builds against standard host libraries.
594*cd0cc2e3SAndroid Build Coastguard Worker//
595*cd0cc2e3SAndroid Build Coastguard Worker// This does not use java_library_host as that does not support the
596*cd0cc2e3SAndroid Build Coastguard Worker// min_sdk_version property which needs to be set to make sure that this
597*cd0cc2e3SAndroid Build Coastguard Worker// library is added to the sdk snapshot correctly.
598*cd0cc2e3SAndroid Build Coastguard Workerjava_library {
599*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-unbundled",
600*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
601*cd0cc2e3SAndroid Build Coastguard Worker        "//build/make/tools/signapk",
602*cd0cc2e3SAndroid Build Coastguard Worker        "//tools/apksig",
603*cd0cc2e3SAndroid Build Coastguard Worker        "//external/robolectric:__subpackages__",
604*cd0cc2e3SAndroid Build Coastguard Worker    ],
605*cd0cc2e3SAndroid Build Coastguard Worker    device_supported: false,
606*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
607*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
608*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/*.java",
609*cd0cc2e3SAndroid Build Coastguard Worker        "openjdk/src/main/java/**/*.java",
610*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-unbundled_generated_constants",
611*cd0cc2e3SAndroid Build Coastguard Worker    ],
612*cd0cc2e3SAndroid Build Coastguard Worker    javacflags: ["-XDignore.symbol.file"],
613*cd0cc2e3SAndroid Build Coastguard Worker    java_version: "1.8",
614*cd0cc2e3SAndroid Build Coastguard Worker    target: {
615*cd0cc2e3SAndroid Build Coastguard Worker        windows: {
616*cd0cc2e3SAndroid Build Coastguard Worker            enabled: true,
617*cd0cc2e3SAndroid Build Coastguard Worker        },
618*cd0cc2e3SAndroid Build Coastguard Worker    },
619*cd0cc2e3SAndroid Build Coastguard Worker    // Make sure that this will be added to the sdk snapshot for S.
620*cd0cc2e3SAndroid Build Coastguard Worker    min_sdk_version: "S",
621*cd0cc2e3SAndroid Build Coastguard Worker}
622*cd0cc2e3SAndroid Build Coastguard Worker
623*cd0cc2e3SAndroid Build Coastguard Worker// Interim library for accessing pseudo-JCA Conscrypt APIs such as HPKE until
624*cd0cc2e3SAndroid Build Coastguard Worker// public APIs are available.  No stability guarentees, so limited visibility
625*cd0cc2e3SAndroid Build Coastguard Worker// in order to track users.
626*cd0cc2e3SAndroid Build Coastguard Workerjava_library {
627*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-lite",
628*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
629*cd0cc2e3SAndroid Build Coastguard Worker        "//external/conscrypt:__subpackages__",
630*cd0cc2e3SAndroid Build Coastguard Worker    ],
631*cd0cc2e3SAndroid Build Coastguard Worker    device_supported: true,
632*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
633*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
634*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/ArrayUtils.java",
635*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/DuckTypedHpkeSpi.java",
636*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/Hkdf.java",
637*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/HpkeContext.java",
638*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/HpkeContextRecipient.java",
639*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/HpkeContextSender.java",
640*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/HpkeSpi.java",
641*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/HpkeSuite.java",
642*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/Internal.java",
643*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/Preconditions.java",
644*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/main/java/**/XdhKeySpec.java",
645*cd0cc2e3SAndroid Build Coastguard Worker    ],
646*cd0cc2e3SAndroid Build Coastguard Worker    jarjar_rules: "conscrypt-lite-jarjar-rules.txt",
647*cd0cc2e3SAndroid Build Coastguard Worker}
648*cd0cc2e3SAndroid Build Coastguard Worker
649*cd0cc2e3SAndroid Build Coastguard Worker// Static unbundled Conscrypt crypto JNI library
650*cd0cc2e3SAndroid Build Coastguard Workercc_library_static {
651*cd0cc2e3SAndroid Build Coastguard Worker    name: "libconscrypt_static",
652*cd0cc2e3SAndroid Build Coastguard Worker    defaults: ["libjavacrypto-defaults"],
653*cd0cc2e3SAndroid Build Coastguard Worker
654*cd0cc2e3SAndroid Build Coastguard Worker    cflags: [
655*cd0cc2e3SAndroid Build Coastguard Worker        "-DJNI_JARJAR_PREFIX=com/google/android/gms/",
656*cd0cc2e3SAndroid Build Coastguard Worker        "-DCONSCRYPT_UNBUNDLED",
657*cd0cc2e3SAndroid Build Coastguard Worker        "-DSTATIC_LIB",
658*cd0cc2e3SAndroid Build Coastguard Worker    ],
659*cd0cc2e3SAndroid Build Coastguard Worker
660*cd0cc2e3SAndroid Build Coastguard Worker    local_include_dirs: ["common/src/jni/unbundled/include"],
661*cd0cc2e3SAndroid Build Coastguard Worker
662*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
663*cd0cc2e3SAndroid Build Coastguard Worker        "libssl",
664*cd0cc2e3SAndroid Build Coastguard Worker        "libcrypto_static",
665*cd0cc2e3SAndroid Build Coastguard Worker    ],
666*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "9",
667*cd0cc2e3SAndroid Build Coastguard Worker    stl: "c++_shared",
668*cd0cc2e3SAndroid Build Coastguard Worker}
669*cd0cc2e3SAndroid Build Coastguard Worker
670*cd0cc2e3SAndroid Build Coastguard Workerjava_library {
671*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-test-support",
672*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
673*cd0cc2e3SAndroid Build Coastguard Worker        "//frameworks/base/apct-tests/perftests/core",
674*cd0cc2e3SAndroid Build Coastguard Worker    ],
675*cd0cc2e3SAndroid Build Coastguard Worker    device_supported: true,
676*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
677*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
678*cd0cc2e3SAndroid Build Coastguard Worker        "testing/src/main/java/**/*.java",
679*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-unbundled_generated_constants",
680*cd0cc2e3SAndroid Build Coastguard Worker    ],
681*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
682*cd0cc2e3SAndroid Build Coastguard Worker        "junit",
683*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-unbundled",
684*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-bcpkix-unbundled",
685*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-ocsp-unbundled",
686*cd0cc2e3SAndroid Build Coastguard Worker    ],
687*cd0cc2e3SAndroid Build Coastguard Worker}
688*cd0cc2e3SAndroid Build Coastguard Worker
689*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
690*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-all-test-files",
691*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
692*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/platform/src/test/java/**/*.java",
693*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/common/src/test/java//**/*.java",
694*cd0cc2e3SAndroid Build Coastguard Worker        "publicapi/src/test/java/**/*.java",
695*cd0cc2e3SAndroid Build Coastguard Worker    ],
696*cd0cc2e3SAndroid Build Coastguard Worker}
697*cd0cc2e3SAndroid Build Coastguard Worker
698*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
699*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-private-api-test-files",
700*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
701*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/platform/src/test/java/com/android/org/conscrypt/ct/*.java",
702*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/platform/src/test/java/com/android/org/conscrypt/CertBlocklistTest.java",
703*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/common/src/test/java/com/android/org/conscrypt/ct/*.java",
704*cd0cc2e3SAndroid Build Coastguard Worker    ],
705*cd0cc2e3SAndroid Build Coastguard Worker}
706*cd0cc2e3SAndroid Build Coastguard Worker
707*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
708*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-test-support-files",
709*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
710*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/testing/src/main/java/**/*.java",
711*cd0cc2e3SAndroid Build Coastguard Worker    ],
712*cd0cc2e3SAndroid Build Coastguard Worker}
713*cd0cc2e3SAndroid Build Coastguard Worker
714*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
715*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-xts-test-files",
716*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
717*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-all-test-files",
718*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-test-support-files",
719*cd0cc2e3SAndroid Build Coastguard Worker    ],
720*cd0cc2e3SAndroid Build Coastguard Worker    exclude_srcs: [
721*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-private-api-test-files",
722*cd0cc2e3SAndroid Build Coastguard Worker    ],
723*cd0cc2e3SAndroid Build Coastguard Worker}
724*cd0cc2e3SAndroid Build Coastguard Worker
725*cd0cc2e3SAndroid Build Coastguard Workerfilegroup {
726*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-private-test-files",
727*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
728*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-private-api-test-files",
729*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-test-support-files",
730*cd0cc2e3SAndroid Build Coastguard Worker    ],
731*cd0cc2e3SAndroid Build Coastguard Worker}
732*cd0cc2e3SAndroid Build Coastguard Worker
733*cd0cc2e3SAndroid Build Coastguard Worker// Make the conscrypt-tests library.
734*cd0cc2e3SAndroid Build Coastguard Workerjava_test {
735*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-tests",
736*cd0cc2e3SAndroid Build Coastguard Worker    visibility: [
737*cd0cc2e3SAndroid Build Coastguard Worker        "//cts/tests/libcore/luni",
738*cd0cc2e3SAndroid Build Coastguard Worker        "//external/conscrypt/apex/tests",
739*cd0cc2e3SAndroid Build Coastguard Worker        "//libcore",
740*cd0cc2e3SAndroid Build Coastguard Worker    ],
741*cd0cc2e3SAndroid Build Coastguard Worker    hostdex: true,
742*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
743*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-xts-test-files",
744*cd0cc2e3SAndroid Build Coastguard Worker    ],
745*cd0cc2e3SAndroid Build Coastguard Worker
746*cd0cc2e3SAndroid Build Coastguard Worker    java_resource_dirs: [
747*cd0cc2e3SAndroid Build Coastguard Worker        // Resource directories do not need repackaging.
748*cd0cc2e3SAndroid Build Coastguard Worker        "openjdk/src/test/resources",
749*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/test/resources",
750*cd0cc2e3SAndroid Build Coastguard Worker    ],
751*cd0cc2e3SAndroid Build Coastguard Worker
752*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
753*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-intra-core-api-stubs-system-modules",
754*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
755*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt",
756*cd0cc2e3SAndroid Build Coastguard Worker        "core-test-rules",
757*cd0cc2e3SAndroid Build Coastguard Worker        "junit",
758*cd0cc2e3SAndroid Build Coastguard Worker        "mockito-target-minus-junit4",
759*cd0cc2e3SAndroid Build Coastguard Worker        "framework-statsd.stubs.module_lib",
760*cd0cc2e3SAndroid Build Coastguard Worker    ],
761*cd0cc2e3SAndroid Build Coastguard Worker
762*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
763*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-unbundled",
764*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-bcpkix-unbundled",
765*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-ocsp-unbundled",
766*cd0cc2e3SAndroid Build Coastguard Worker    ],
767*cd0cc2e3SAndroid Build Coastguard Worker    javacflags: [
768*cd0cc2e3SAndroid Build Coastguard Worker        "-Xmaxwarns 9999999",
769*cd0cc2e3SAndroid Build Coastguard Worker        //"-Xlint:all",
770*cd0cc2e3SAndroid Build Coastguard Worker        //"-Xlint:-serial,-deprecation,-unchecked",
771*cd0cc2e3SAndroid Build Coastguard Worker    ],
772*cd0cc2e3SAndroid Build Coastguard Worker
773*cd0cc2e3SAndroid Build Coastguard Worker    target: {
774*cd0cc2e3SAndroid Build Coastguard Worker        host: {
775*cd0cc2e3SAndroid Build Coastguard Worker            required: ["libjavacrypto"],
776*cd0cc2e3SAndroid Build Coastguard Worker        },
777*cd0cc2e3SAndroid Build Coastguard Worker        darwin: {
778*cd0cc2e3SAndroid Build Coastguard Worker            // required module "libjavacrypto" is disabled on darwin
779*cd0cc2e3SAndroid Build Coastguard Worker            enabled: false,
780*cd0cc2e3SAndroid Build Coastguard Worker        },
781*cd0cc2e3SAndroid Build Coastguard Worker    },
782*cd0cc2e3SAndroid Build Coastguard Worker    java_version: "1.8",
783*cd0cc2e3SAndroid Build Coastguard Worker}
784*cd0cc2e3SAndroid Build Coastguard Worker
785*cd0cc2e3SAndroid Build Coastguard Worker// Conscrypt private tests. These tests relies on private APIs. Prefer adding
786*cd0cc2e3SAndroid Build Coastguard Worker// your test to conscrypt-tests if possible, as these will be executed as part
787*cd0cc2e3SAndroid Build Coastguard Worker// of CTS (see CtsLibcoreTestCases).
788*cd0cc2e3SAndroid Build Coastguard Workerandroid_test {
789*cd0cc2e3SAndroid Build Coastguard Worker    name: "ConscryptPrivateTestCases",
790*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
791*cd0cc2e3SAndroid Build Coastguard Worker        ":conscrypt-private-test-files",
792*cd0cc2e3SAndroid Build Coastguard Worker    ],
793*cd0cc2e3SAndroid Build Coastguard Worker
794*cd0cc2e3SAndroid Build Coastguard Worker    java_resource_dirs: [
795*cd0cc2e3SAndroid Build Coastguard Worker        // Resource directories do not need repackaging.
796*cd0cc2e3SAndroid Build Coastguard Worker        "openjdk/src/test/resources",
797*cd0cc2e3SAndroid Build Coastguard Worker        "common/src/test/resources",
798*cd0cc2e3SAndroid Build Coastguard Worker    ],
799*cd0cc2e3SAndroid Build Coastguard Worker
800*cd0cc2e3SAndroid Build Coastguard Worker    platform_apis: true,
801*cd0cc2e3SAndroid Build Coastguard Worker    manifest: "AndroidManifest-private.xml",
802*cd0cc2e3SAndroid Build Coastguard Worker    test_config: "AndroidTest-private.xml",
803*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
804*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt",
805*cd0cc2e3SAndroid Build Coastguard Worker        "core-test-rules",
806*cd0cc2e3SAndroid Build Coastguard Worker        "junit",
807*cd0cc2e3SAndroid Build Coastguard Worker        "mockito-target-minus-junit4",
808*cd0cc2e3SAndroid Build Coastguard Worker        "framework-statsd.stubs.module_lib",
809*cd0cc2e3SAndroid Build Coastguard Worker    ],
810*cd0cc2e3SAndroid Build Coastguard Worker
811*cd0cc2e3SAndroid Build Coastguard Worker    static_libs: [
812*cd0cc2e3SAndroid Build Coastguard Worker        "androidx.test.runner",
813*cd0cc2e3SAndroid Build Coastguard Worker        "androidx.test.rules",
814*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-unbundled",
815*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-bcpkix-unbundled",
816*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-ocsp-unbundled",
817*cd0cc2e3SAndroid Build Coastguard Worker    ],
818*cd0cc2e3SAndroid Build Coastguard Worker    java_version: "1.8",
819*cd0cc2e3SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
820*cd0cc2e3SAndroid Build Coastguard Worker}
821*cd0cc2e3SAndroid Build Coastguard Worker
822*cd0cc2e3SAndroid Build Coastguard Worker// Make the conscrypt-benchmarks library.
823*cd0cc2e3SAndroid Build Coastguard Workerjava_test {
824*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-benchmarks",
825*cd0cc2e3SAndroid Build Coastguard Worker    srcs: [
826*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/testing/src/main/java/**/*.java",
827*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/benchmark-base/src/main/java/**/*.java",
828*cd0cc2e3SAndroid Build Coastguard Worker        "repackaged/benchmark-android/src/main/java/**/*.java",
829*cd0cc2e3SAndroid Build Coastguard Worker    ],
830*cd0cc2e3SAndroid Build Coastguard Worker    sdk_version: "none",
831*cd0cc2e3SAndroid Build Coastguard Worker    system_modules: "art-module-intra-core-api-stubs-system-modules",
832*cd0cc2e3SAndroid Build Coastguard Worker    libs: [
833*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt",
834*cd0cc2e3SAndroid Build Coastguard Worker        "junit",
835*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-unbundled",
836*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-bcpkix-unbundled",
837*cd0cc2e3SAndroid Build Coastguard Worker        "bouncycastle-ocsp-unbundled",
838*cd0cc2e3SAndroid Build Coastguard Worker        "caliper-api-target",
839*cd0cc2e3SAndroid Build Coastguard Worker    ],
840*cd0cc2e3SAndroid Build Coastguard Worker
841*cd0cc2e3SAndroid Build Coastguard Worker    javacflags: [
842*cd0cc2e3SAndroid Build Coastguard Worker        "-Xmaxwarns 9999999",
843*cd0cc2e3SAndroid Build Coastguard Worker        //"-Xlint:all",
844*cd0cc2e3SAndroid Build Coastguard Worker        //"-Xlint:-serial,-deprecation,-unchecked",
845*cd0cc2e3SAndroid Build Coastguard Worker    ],
846*cd0cc2e3SAndroid Build Coastguard Worker
847*cd0cc2e3SAndroid Build Coastguard Worker    target: {
848*cd0cc2e3SAndroid Build Coastguard Worker        host: {
849*cd0cc2e3SAndroid Build Coastguard Worker            required: ["libjavacrypto"],
850*cd0cc2e3SAndroid Build Coastguard Worker        },
851*cd0cc2e3SAndroid Build Coastguard Worker        darwin: {
852*cd0cc2e3SAndroid Build Coastguard Worker            // required module "libjavacrypto" is disabled on darwin
853*cd0cc2e3SAndroid Build Coastguard Worker            enabled: false,
854*cd0cc2e3SAndroid Build Coastguard Worker        },
855*cd0cc2e3SAndroid Build Coastguard Worker    },
856*cd0cc2e3SAndroid Build Coastguard Worker    java_version: "1.8",
857*cd0cc2e3SAndroid Build Coastguard Worker}
858*cd0cc2e3SAndroid Build Coastguard Worker
859*cd0cc2e3SAndroid Build Coastguard Worker// Device SDK exposed by the Conscrypt module.
860*cd0cc2e3SAndroid Build Coastguard Workersdk {
861*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-module-sdk",
862*cd0cc2e3SAndroid Build Coastguard Worker    apexes: [
863*cd0cc2e3SAndroid Build Coastguard Worker        // Adds exportable dependencies of the APEX to the sdk,
864*cd0cc2e3SAndroid Build Coastguard Worker        // e.g. *classpath_fragments.
865*cd0cc2e3SAndroid Build Coastguard Worker        "com.android.conscrypt",
866*cd0cc2e3SAndroid Build Coastguard Worker    ],
867*cd0cc2e3SAndroid Build Coastguard Worker    java_sdk_libs: [
868*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt.module.intra.core.api",
869*cd0cc2e3SAndroid Build Coastguard Worker    ],
870*cd0cc2e3SAndroid Build Coastguard Worker    native_shared_libs: [
871*cd0cc2e3SAndroid Build Coastguard Worker        "libconscrypt_jni",
872*cd0cc2e3SAndroid Build Coastguard Worker    ],
873*cd0cc2e3SAndroid Build Coastguard Worker}
874*cd0cc2e3SAndroid Build Coastguard Worker
875*cd0cc2e3SAndroid Build Coastguard Worker// Host tools exported by the Conscrypt module.
876*cd0cc2e3SAndroid Build Coastguard Workermodule_exports {
877*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-module-host-exports",
878*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
879*cd0cc2e3SAndroid Build Coastguard Worker    device_supported: false,
880*cd0cc2e3SAndroid Build Coastguard Worker    java_libs: [
881*cd0cc2e3SAndroid Build Coastguard Worker        "conscrypt-unbundled",
882*cd0cc2e3SAndroid Build Coastguard Worker    ],
883*cd0cc2e3SAndroid Build Coastguard Worker    native_shared_libs: [
884*cd0cc2e3SAndroid Build Coastguard Worker        "libconscrypt_openjdk_jni",
885*cd0cc2e3SAndroid Build Coastguard Worker    ],
886*cd0cc2e3SAndroid Build Coastguard Worker}
887*cd0cc2e3SAndroid Build Coastguard Worker
888*cd0cc2e3SAndroid Build Coastguard Worker// Test libraries exposed by the Conscrypt module.
889*cd0cc2e3SAndroid Build Coastguard Workermodule_exports {
890*cd0cc2e3SAndroid Build Coastguard Worker    name: "conscrypt-module-test-exports",
891*cd0cc2e3SAndroid Build Coastguard Worker    host_supported: true,
892*cd0cc2e3SAndroid Build Coastguard Worker    target: {
893*cd0cc2e3SAndroid Build Coastguard Worker        android: {
894*cd0cc2e3SAndroid Build Coastguard Worker            java_libs: [
895*cd0cc2e3SAndroid Build Coastguard Worker                // For use by robolectric and ART tests.
896*cd0cc2e3SAndroid Build Coastguard Worker                "conscrypt-for-host",
897*cd0cc2e3SAndroid Build Coastguard Worker            ],
898*cd0cc2e3SAndroid Build Coastguard Worker            java_tests: [
899*cd0cc2e3SAndroid Build Coastguard Worker                // For use by CTS
900*cd0cc2e3SAndroid Build Coastguard Worker                "conscrypt-tests",
901*cd0cc2e3SAndroid Build Coastguard Worker            ],
902*cd0cc2e3SAndroid Build Coastguard Worker            native_shared_libs: [
903*cd0cc2e3SAndroid Build Coastguard Worker                "libjavacrypto",
904*cd0cc2e3SAndroid Build Coastguard Worker            ],
905*cd0cc2e3SAndroid Build Coastguard Worker        },
906*cd0cc2e3SAndroid Build Coastguard Worker        darwin: {
907*cd0cc2e3SAndroid Build Coastguard Worker            enabled: false,
908*cd0cc2e3SAndroid Build Coastguard Worker        },
909*cd0cc2e3SAndroid Build Coastguard Worker        // For use by ART tests on host.
910*cd0cc2e3SAndroid Build Coastguard Worker        not_windows: {
911*cd0cc2e3SAndroid Build Coastguard Worker            native_shared_libs: [
912*cd0cc2e3SAndroid Build Coastguard Worker                "libjavacrypto",
913*cd0cc2e3SAndroid Build Coastguard Worker            ],
914*cd0cc2e3SAndroid Build Coastguard Worker        },
915*cd0cc2e3SAndroid Build Coastguard Worker    },
916*cd0cc2e3SAndroid Build Coastguard Worker}
917