xref: /aosp_15_r20/external/okhttp/Android.bp (revision ab625e417e7950f52094c019474d2a9e9f14a68c)
1*ab625e41SAndroid Build Coastguard Worker//
2*ab625e41SAndroid Build Coastguard Worker// Copyright (C) 2012 The Android Open Source Project
3*ab625e41SAndroid Build Coastguard Worker//
4*ab625e41SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*ab625e41SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*ab625e41SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*ab625e41SAndroid Build Coastguard Worker//
8*ab625e41SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*ab625e41SAndroid Build Coastguard Worker//
10*ab625e41SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*ab625e41SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*ab625e41SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*ab625e41SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*ab625e41SAndroid Build Coastguard Worker// limitations under the License.
15*ab625e41SAndroid Build Coastguard Worker//
16*ab625e41SAndroid Build Coastguard Worker
17*ab625e41SAndroid Build Coastguard Workerpackage {
18*ab625e41SAndroid Build Coastguard Worker    default_team: "trendy_team_java_core_libraries",
19*ab625e41SAndroid Build Coastguard Worker    default_visibility: ["//visibility:private"],
20*ab625e41SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_okhttp_license"],
21*ab625e41SAndroid Build Coastguard Worker}
22*ab625e41SAndroid Build Coastguard Worker
23*ab625e41SAndroid Build Coastguard Worker// Added automatically by a large-scale-change
24*ab625e41SAndroid Build Coastguard Worker// See: http://go/android-license-faq
25*ab625e41SAndroid Build Coastguard Workerlicense {
26*ab625e41SAndroid Build Coastguard Worker    name: "external_okhttp_license",
27*ab625e41SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
28*ab625e41SAndroid Build Coastguard Worker    license_kinds: [
29*ab625e41SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
30*ab625e41SAndroid Build Coastguard Worker    ],
31*ab625e41SAndroid Build Coastguard Worker    license_text: [
32*ab625e41SAndroid Build Coastguard Worker        "LICENSE",
33*ab625e41SAndroid Build Coastguard Worker    ],
34*ab625e41SAndroid Build Coastguard Worker}
35*ab625e41SAndroid Build Coastguard Worker
36*ab625e41SAndroid Build Coastguard Workerjava_defaults {
37*ab625e41SAndroid Build Coastguard Worker    name: "okhttp_errorprone_defaults",
38*ab625e41SAndroid Build Coastguard Worker    errorprone: {
39*ab625e41SAndroid Build Coastguard Worker        javacflags: [
40*ab625e41SAndroid Build Coastguard Worker            "-Xep:InvalidTimeZoneID:WARN",
41*ab625e41SAndroid Build Coastguard Worker            "-Xep:TryFailThrowable:WARN",
42*ab625e41SAndroid Build Coastguard Worker        ],
43*ab625e41SAndroid Build Coastguard Worker    },
44*ab625e41SAndroid Build Coastguard Worker}
45*ab625e41SAndroid Build Coastguard Worker
46*ab625e41SAndroid Build Coastguard Worker// The source files that contribute to Android's core library APIs.
47*ab625e41SAndroid Build Coastguard Workerfilegroup {
48*ab625e41SAndroid Build Coastguard Worker    name: "okhttp_api_files",
49*ab625e41SAndroid Build Coastguard Worker    visibility: ["//libcore"],
50*ab625e41SAndroid Build Coastguard Worker    // Use the repackaged version of android as that is what is used by Android core library
51*ab625e41SAndroid Build Coastguard Worker    // APIs.
52*ab625e41SAndroid Build Coastguard Worker    srcs: ["repackaged/android/src/main/java/com/android/okhttp/internalandroidapi/**/*.java"],
53*ab625e41SAndroid Build Coastguard Worker}
54*ab625e41SAndroid Build Coastguard Worker
55*ab625e41SAndroid Build Coastguard Workernojarjar_visibility = [
56*ab625e41SAndroid Build Coastguard Worker    "//art/build/sdk",
57*ab625e41SAndroid Build Coastguard Worker    "//cts/tests/libcore/okhttp",
58*ab625e41SAndroid Build Coastguard Worker]
59*ab625e41SAndroid Build Coastguard Worker
60*ab625e41SAndroid Build Coastguard Worker// non-jarjar'd version of okhttp to compile the tests against
61*ab625e41SAndroid Build Coastguard Workerjava_library {
62*ab625e41SAndroid Build Coastguard Worker    name: "okhttp-nojarjar",
63*ab625e41SAndroid Build Coastguard Worker    defaults: ["okhttp_errorprone_defaults"],
64*ab625e41SAndroid Build Coastguard Worker    visibility: nojarjar_visibility,
65*ab625e41SAndroid Build Coastguard Worker    srcs: [
66*ab625e41SAndroid Build Coastguard Worker        "android/src/main/java/**/*.java",
67*ab625e41SAndroid Build Coastguard Worker        "okhttp/src/main/java/**/*.java",
68*ab625e41SAndroid Build Coastguard Worker        "okhttp-urlconnection/src/main/java/**/*.java",
69*ab625e41SAndroid Build Coastguard Worker        "okhttp-android-support/src/main/java/**/*.java",
70*ab625e41SAndroid Build Coastguard Worker        "okio/okio/src/main/java/**/*.java",
71*ab625e41SAndroid Build Coastguard Worker    ],
72*ab625e41SAndroid Build Coastguard Worker    exclude_srcs: ["okhttp/src/main/java/com/squareup/okhttp/internal/Platform.java"],
73*ab625e41SAndroid Build Coastguard Worker
74*ab625e41SAndroid Build Coastguard Worker    hostdex: true,
75*ab625e41SAndroid Build Coastguard Worker
76*ab625e41SAndroid Build Coastguard Worker    sdk_version: "none",
77*ab625e41SAndroid Build Coastguard Worker    system_modules: "core-all-system-modules",
78*ab625e41SAndroid Build Coastguard Worker    libs: [
79*ab625e41SAndroid Build Coastguard Worker        "conscrypt.module.intra.core.api.stubs",
80*ab625e41SAndroid Build Coastguard Worker    ],
81*ab625e41SAndroid Build Coastguard Worker    java_version: "1.7",
82*ab625e41SAndroid Build Coastguard Worker}
83*ab625e41SAndroid Build Coastguard Worker
84*ab625e41SAndroid Build Coastguard Worker// The source implementation files, used to build okhttp and core-all. It is
85*ab625e41SAndroid Build Coastguard Worker// used in the latter case to break the cycle where okhttp depends on core-all
86*ab625e41SAndroid Build Coastguard Worker// and core-all depends on okhttp. By including the source into core-all it
87*ab625e41SAndroid Build Coastguard Worker// ensures that the code can all build correctly and then that is used to build
88*ab625e41SAndroid Build Coastguard Worker// the separate parts.
89*ab625e41SAndroid Build Coastguard Workerfilegroup {
90*ab625e41SAndroid Build Coastguard Worker    name: "okhttp_impl_files",
91*ab625e41SAndroid Build Coastguard Worker    visibility: ["//libcore"],
92*ab625e41SAndroid Build Coastguard Worker    srcs: [
93*ab625e41SAndroid Build Coastguard Worker        // Although some of the classes in the android/ directory are already in the correct
94*ab625e41SAndroid Build Coastguard Worker        // package and do not need to be moved to another package they are transformed as they
95*ab625e41SAndroid Build Coastguard Worker        // reference other classes that do require repackaging.
96*ab625e41SAndroid Build Coastguard Worker        "repackaged/android/src/main/java/**/*.java",
97*ab625e41SAndroid Build Coastguard Worker        "repackaged/okhttp/src/main/java/**/*.java",
98*ab625e41SAndroid Build Coastguard Worker        "repackaged/okhttp-urlconnection/src/main/java/**/*.java",
99*ab625e41SAndroid Build Coastguard Worker        "repackaged/okhttp-android-support/src/main/java/**/*.java",
100*ab625e41SAndroid Build Coastguard Worker        "repackaged/okio/okio/src/main/java/**/*.java",
101*ab625e41SAndroid Build Coastguard Worker    ],
102*ab625e41SAndroid Build Coastguard Worker}
103*ab625e41SAndroid Build Coastguard Worker
104*ab625e41SAndroid Build Coastguard Workerjava_library {
105*ab625e41SAndroid Build Coastguard Worker    name: "okhttp",
106*ab625e41SAndroid Build Coastguard Worker    defaults: ["okhttp_errorprone_defaults"],
107*ab625e41SAndroid Build Coastguard Worker    visibility: [
108*ab625e41SAndroid Build Coastguard Worker        "//art/build/apex",
109*ab625e41SAndroid Build Coastguard Worker        "//art/build/sdk",
110*ab625e41SAndroid Build Coastguard Worker        "//art/tools/ahat",
111*ab625e41SAndroid Build Coastguard Worker        "//art/tools/fuzzer",
112*ab625e41SAndroid Build Coastguard Worker        "//external/grpc-grpc-java/okhttp",
113*ab625e41SAndroid Build Coastguard Worker        "//external/robolectric-shadows",
114*ab625e41SAndroid Build Coastguard Worker        "//external/robolectric",
115*ab625e41SAndroid Build Coastguard Worker        "//libcore:__subpackages__",
116*ab625e41SAndroid Build Coastguard Worker        "//packages/modules/ArtPrebuilt",
117*ab625e41SAndroid Build Coastguard Worker    ],
118*ab625e41SAndroid Build Coastguard Worker    srcs: [
119*ab625e41SAndroid Build Coastguard Worker        ":okhttp_impl_files",
120*ab625e41SAndroid Build Coastguard Worker    ],
121*ab625e41SAndroid Build Coastguard Worker
122*ab625e41SAndroid Build Coastguard Worker    hostdex: true,
123*ab625e41SAndroid Build Coastguard Worker    installable: true,
124*ab625e41SAndroid Build Coastguard Worker
125*ab625e41SAndroid Build Coastguard Worker    sdk_version: "none",
126*ab625e41SAndroid Build Coastguard Worker    system_modules: "core-all-system-modules",
127*ab625e41SAndroid Build Coastguard Worker    libs: [
128*ab625e41SAndroid Build Coastguard Worker        "conscrypt.module.intra.core.api.stubs",
129*ab625e41SAndroid Build Coastguard Worker    ],
130*ab625e41SAndroid Build Coastguard Worker    java_version: "1.7",
131*ab625e41SAndroid Build Coastguard Worker    apex_available: [
132*ab625e41SAndroid Build Coastguard Worker        "com.android.art",
133*ab625e41SAndroid Build Coastguard Worker        "com.android.art.debug",
134*ab625e41SAndroid Build Coastguard Worker    ],
135*ab625e41SAndroid Build Coastguard Worker    min_sdk_version: "31",
136*ab625e41SAndroid Build Coastguard Worker}
137*ab625e41SAndroid Build Coastguard Worker
138*ab625e41SAndroid Build Coastguard Worker// Java library for use on host, e.g. by robolectric.
139*ab625e41SAndroid Build Coastguard Workerjava_library {
140*ab625e41SAndroid Build Coastguard Worker    name: "okhttp-for-host",
141*ab625e41SAndroid Build Coastguard Worker    visibility: [
142*ab625e41SAndroid Build Coastguard Worker        "//art/build/sdk",
143*ab625e41SAndroid Build Coastguard Worker        "//external/robolectric-shadows",
144*ab625e41SAndroid Build Coastguard Worker        "//external/robolectric",
145*ab625e41SAndroid Build Coastguard Worker    ],
146*ab625e41SAndroid Build Coastguard Worker    static_libs: [
147*ab625e41SAndroid Build Coastguard Worker        "okhttp",
148*ab625e41SAndroid Build Coastguard Worker    ],
149*ab625e41SAndroid Build Coastguard Worker    sdk_version: "none",
150*ab625e41SAndroid Build Coastguard Worker    system_modules: "none",
151*ab625e41SAndroid Build Coastguard Worker}
152*ab625e41SAndroid Build Coastguard Worker
153*ab625e41SAndroid Build Coastguard Worker// Java Library for both Host and Android that does not use the repackaged okhttp libraries
154*ab625e41SAndroid Build Coastguard Worker// (com.android.okhttp) and instead uses the original (com.squareup.okhttp) packages.
155*ab625e41SAndroid Build Coastguard Worker// This should not end up on the bootclasspath and instead should only be used to build
156*ab625e41SAndroid Build Coastguard Worker// third-party or unbundled applications or libraries that require OkHttp.
157*ab625e41SAndroid Build Coastguard Workerjava_library {
158*ab625e41SAndroid Build Coastguard Worker    name: "okhttp-norepackage",
159*ab625e41SAndroid Build Coastguard Worker    defaults: ["okhttp_errorprone_defaults"],
160*ab625e41SAndroid Build Coastguard Worker    host_supported: true,
161*ab625e41SAndroid Build Coastguard Worker    apex_available: [
162*ab625e41SAndroid Build Coastguard Worker        "//apex_available:platform",
163*ab625e41SAndroid Build Coastguard Worker        "com.android.adservices",
164*ab625e41SAndroid Build Coastguard Worker        "com.android.devicelock",
165*ab625e41SAndroid Build Coastguard Worker        "com.android.extservices",
166*ab625e41SAndroid Build Coastguard Worker        "com.android.ondevicepersonalization",
167*ab625e41SAndroid Build Coastguard Worker        "com.android.virt",
168*ab625e41SAndroid Build Coastguard Worker    ],
169*ab625e41SAndroid Build Coastguard Worker    visibility: [
170*ab625e41SAndroid Build Coastguard Worker        "//art/build/sdk",
171*ab625e41SAndroid Build Coastguard Worker        "//external/grpc-grpc-java/okhttp",
172*ab625e41SAndroid Build Coastguard Worker        "//vendor:__subpackages__",
173*ab625e41SAndroid Build Coastguard Worker    ],
174*ab625e41SAndroid Build Coastguard Worker
175*ab625e41SAndroid Build Coastguard Worker    srcs: [
176*ab625e41SAndroid Build Coastguard Worker        "okhttp/src/main/java/**/*.java",
177*ab625e41SAndroid Build Coastguard Worker        "okhttp-urlconnection/src/main/java/**/*.java",
178*ab625e41SAndroid Build Coastguard Worker        ":okhttp_version.java",
179*ab625e41SAndroid Build Coastguard Worker    ],
180*ab625e41SAndroid Build Coastguard Worker
181*ab625e41SAndroid Build Coastguard Worker    libs: [
182*ab625e41SAndroid Build Coastguard Worker        // Building against "core_current" means that the android.util.Log API
183*ab625e41SAndroid Build Coastguard Worker        // is not available. This provides stubs for it which allows the code to
184*ab625e41SAndroid Build Coastguard Worker        // compile.
185*ab625e41SAndroid Build Coastguard Worker        "okhttp-android-util-log",
186*ab625e41SAndroid Build Coastguard Worker    ],
187*ab625e41SAndroid Build Coastguard Worker
188*ab625e41SAndroid Build Coastguard Worker    static_libs: [
189*ab625e41SAndroid Build Coastguard Worker        "okio-lib",
190*ab625e41SAndroid Build Coastguard Worker    ],
191*ab625e41SAndroid Build Coastguard Worker
192*ab625e41SAndroid Build Coastguard Worker    installable: true,
193*ab625e41SAndroid Build Coastguard Worker    // Build against a "core_current" as it cannot use "current" as it has to
194*ab625e41SAndroid Build Coastguard Worker    // build in manifests without frameworks/base.
195*ab625e41SAndroid Build Coastguard Worker    sdk_version: "core_current",
196*ab625e41SAndroid Build Coastguard Worker    // Make sure that this will be added to the sdk snapshot for S.
197*ab625e41SAndroid Build Coastguard Worker    min_sdk_version: "30",
198*ab625e41SAndroid Build Coastguard Worker    // This jar is packaged as part of the ART module host exports, use -target 8 so that it works
199*ab625e41SAndroid Build Coastguard Worker    // with old JDKs.
200*ab625e41SAndroid Build Coastguard Worker    java_version: "1.8",
201*ab625e41SAndroid Build Coastguard Worker}
202*ab625e41SAndroid Build Coastguard Worker
203*ab625e41SAndroid Build Coastguard Worker// Generate Version.java based on the version number from pom.xml.
204*ab625e41SAndroid Build Coastguard Workergenrule {
205*ab625e41SAndroid Build Coastguard Worker    name: "okhttp_version.java",
206*ab625e41SAndroid Build Coastguard Worker    srcs: [
207*ab625e41SAndroid Build Coastguard Worker        "okhttp/src/main/java-templates/com/squareup/okhttp/internal/Version.java",
208*ab625e41SAndroid Build Coastguard Worker        "okhttp/pom.xml",
209*ab625e41SAndroid Build Coastguard Worker    ],
210*ab625e41SAndroid Build Coastguard Worker    out: ["com/squareup/okhttp/internal/Version.java"],
211*ab625e41SAndroid Build Coastguard Worker    cmd: "grep \"<version>\" $(location okhttp/pom.xml) | head -1 |" +
212*ab625e41SAndroid Build Coastguard Worker        " sed -e \"s/\\s*<version>\\(.*\\)<\\/version>/\\1/\" > $(genDir)/version && " +
213*ab625e41SAndroid Build Coastguard Worker        "sed -e \"s/\\$${project.version}/$$(cat $(genDir)/version)/\" " +
214*ab625e41SAndroid Build Coastguard Worker        " $(location okhttp/src/main/java-templates/com/squareup/okhttp/internal/Version.java) " +
215*ab625e41SAndroid Build Coastguard Worker        "> $(out)",
216*ab625e41SAndroid Build Coastguard Worker}
217*ab625e41SAndroid Build Coastguard Worker
218*ab625e41SAndroid Build Coastguard Worker// A library to provide a stub android.util.Log symbol for
219*ab625e41SAndroid Build Coastguard Worker// okhttp/src/main/java/com/squareup/okhttp/internal/Platform.java
220*ab625e41SAndroid Build Coastguard Workerjava_library {
221*ab625e41SAndroid Build Coastguard Worker    name: "okhttp-android-util-log",
222*ab625e41SAndroid Build Coastguard Worker    host_supported: true,
223*ab625e41SAndroid Build Coastguard Worker    srcs: ["okhttp-android-util-log/src/main/java/**/*.java"],
224*ab625e41SAndroid Build Coastguard Worker    sdk_version: "core_current",
225*ab625e41SAndroid Build Coastguard Worker}
226*ab625e41SAndroid Build Coastguard Worker
227*ab625e41SAndroid Build Coastguard Workerjava_library {
228*ab625e41SAndroid Build Coastguard Worker    name: "okhttp-tests-nojarjar",
229*ab625e41SAndroid Build Coastguard Worker    defaults: ["okhttp_errorprone_defaults"],
230*ab625e41SAndroid Build Coastguard Worker    visibility: nojarjar_visibility,
231*ab625e41SAndroid Build Coastguard Worker    srcs: [
232*ab625e41SAndroid Build Coastguard Worker        "android/test/java/**/*.java",
233*ab625e41SAndroid Build Coastguard Worker        "okhttp-android-support/src/test/java/**/*.java",
234*ab625e41SAndroid Build Coastguard Worker        "okhttp-testing-support/src/main/java/**/*.java",
235*ab625e41SAndroid Build Coastguard Worker        "okhttp-tests/src/test/java/**/*.java",
236*ab625e41SAndroid Build Coastguard Worker        "okhttp-urlconnection/src/test/java/**/*.java",
237*ab625e41SAndroid Build Coastguard Worker        "okhttp-ws/src/main/java/**/*.java",
238*ab625e41SAndroid Build Coastguard Worker        "okhttp-ws-tests/src/test/java/**/*.java",
239*ab625e41SAndroid Build Coastguard Worker        "okio/okio/src/test/java/**/*.java",
240*ab625e41SAndroid Build Coastguard Worker        "mockwebserver/src/main/java/**/*.java",
241*ab625e41SAndroid Build Coastguard Worker        "mockwebserver/src/test/java/**/*.java",
242*ab625e41SAndroid Build Coastguard Worker    ],
243*ab625e41SAndroid Build Coastguard Worker    // Exclude test Android currently has problems with due to @Parameterized (requires JUnit 4.11).
244*ab625e41SAndroid Build Coastguard Worker    exclude_srcs: ["okhttp-tests/src/test/java/com/squareup/okhttp/WebPlatformUrlTest.java"],
245*ab625e41SAndroid Build Coastguard Worker
246*ab625e41SAndroid Build Coastguard Worker    sdk_version: "none",
247*ab625e41SAndroid Build Coastguard Worker    system_modules: "core-all-system-modules",
248*ab625e41SAndroid Build Coastguard Worker    libs: [
249*ab625e41SAndroid Build Coastguard Worker        "okhttp-nojarjar",
250*ab625e41SAndroid Build Coastguard Worker        "junit",
251*ab625e41SAndroid Build Coastguard Worker        "conscrypt.module.intra.core.api.stubs",
252*ab625e41SAndroid Build Coastguard Worker        "bouncycastle-unbundled",
253*ab625e41SAndroid Build Coastguard Worker    ],
254*ab625e41SAndroid Build Coastguard Worker
255*ab625e41SAndroid Build Coastguard Worker    java_version: "1.7",
256*ab625e41SAndroid Build Coastguard Worker}
257