blob: 820ecea56367dac704e6c6706798303b8ce12fd7 [file] [log] [blame]
//
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_team: "trendy_team_java_core_libraries",
default_visibility: ["//visibility:private"],
default_applicable_licenses: ["external_okhttp_license"],
}
// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
name: "external_okhttp_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
],
license_text: [
"LICENSE.txt",
],
}
java_defaults {
name: "okhttp_errorprone_defaults",
errorprone: {
javacflags: [
"-Xep:InvalidTimeZoneID:WARN",
"-Xep:TryFailThrowable:WARN",
],
},
}
// The source files that contribute to Android's core library APIs.
filegroup {
name: "okhttp_api_files",
visibility: ["//libcore"],
// Use the repackaged version of android as that is what is used by Android core library
// APIs.
srcs: ["repackaged/android/src/main/java/com/android/okhttp/internalandroidapi/**/*.java"],
}
nojarjar_visibility = [
"//art/build/sdk",
"//cts/tests/libcore/okhttp",
]
// non-jarjar'd version of okhttp to compile the tests against
java_library {
name: "okhttp-nojarjar",
defaults: ["okhttp_errorprone_defaults"],
visibility: nojarjar_visibility,
srcs: [
"android/src/main/java/**/*.java",
"okhttp/src/main/java/**/*.java",
"okhttp-urlconnection/src/main/java/**/*.java",
"okhttp-android-support/src/main/java/**/*.java",
"okio/okio/src/main/java/**/*.java",
],
exclude_srcs: ["okhttp/src/main/java/com/squareup/okhttp/internal/Platform.java"],
hostdex: true,
sdk_version: "none",
system_modules: "core-all-system-modules",
libs: [
"conscrypt.module.intra.core.api",
],
java_version: "1.7",
}
// The source implementation files, used to build okhttp and core-all. It is
// used in the latter case to break the cycle where okhttp depends on core-all
// and core-all depends on okhttp. By including the source into core-all it
// ensures that the code can all build correctly and then that is used to build
// the separate parts.
filegroup {
name: "okhttp_impl_files",
visibility: ["//libcore"],
srcs: [
// Although some of the classes in the android/ directory are already in the correct
// package and do not need to be moved to another package they are transformed as they
// reference other classes that do require repackaging.
"repackaged/android/src/main/java/**/*.java",
"repackaged/okhttp/src/main/java/**/*.java",
"repackaged/okhttp-urlconnection/src/main/java/**/*.java",
"repackaged/okhttp-android-support/src/main/java/**/*.java",
"repackaged/okio/okio/src/main/java/**/*.java",
],
}
java_library {
name: "okhttp",
defaults: ["okhttp_errorprone_defaults"],
visibility: [
"//art/build/apex",
"//art/build/sdk",
"//external/grpc-grpc-java/okhttp",
"//external/robolectric-shadows",
"//external/robolectric",
"//libcore:__subpackages__",
"//packages/modules/ArtPrebuilt",
],
srcs: [
":okhttp_impl_files",
],
hostdex: true,
installable: true,
sdk_version: "none",
system_modules: "core-all-system-modules",
libs: [
"conscrypt.module.intra.core.api",
],
java_version: "1.7",
apex_available: [
"com.android.art",
"com.android.art.debug",
],
min_sdk_version: "31",
}
// Java library for use on host, e.g. by robolectric.
java_library {
name: "okhttp-for-host",
visibility: [
"//art/build/sdk",
"//external/robolectric-shadows",
"//external/robolectric",
],
static_libs: [
"okhttp",
],
sdk_version: "none",
system_modules: "none",
}
// Java Library for both Host and Android that does not use the repackaged okhttp libraries
// (com.android.okhttp) and instead uses the original (com.squareup.okhttp) packages.
// This should not end up on the bootclasspath and instead should only be used to build
// third-party or unbundled applications or libraries that require OkHttp.
java_library {
name: "okhttp-norepackage",
defaults: ["okhttp_errorprone_defaults"],
host_supported: true,
apex_available: [
"//apex_available:platform",
"com.android.adservices",
"com.android.devicelock",
"com.android.extservices",
"com.android.ondevicepersonalization",
],
visibility: [
"//art/build/sdk",
"//external/grpc-grpc-java/okhttp",
],
srcs: [
"okhttp/src/main/java/**/*.java",
"okhttp-urlconnection/src/main/java/**/*.java",
":okhttp_version.java",
],
libs: [
// Building against "core_current" means that the android.util.Log API
// is not available. This provides stubs for it which allows the code to
// compile.
"okhttp-android-util-log",
],
static_libs: [
"okio-lib",
],
installable: true,
// Build against a "core_current" as it cannot use "current" as it has to
// build in manifests without frameworks/base.
sdk_version: "core_current",
// Make sure that this will be added to the sdk snapshot for S.
min_sdk_version: "30",
// This jar is packaged as part of the ART module host exports, use -target 8 so that it works
// with old JDKs.
java_version: "1.8",
}
// Generate Version.java based on the version number from pom.xml.
genrule {
name: "okhttp_version.java",
srcs: [
"okhttp/src/main/java-templates/com/squareup/okhttp/internal/Version.java",
"okhttp/pom.xml",
],
out: ["com/squareup/okhttp/internal/Version.java"],
cmd: "grep \"<version>\" $(location okhttp/pom.xml) | head -1 |" +
" sed -e \"s/\\s*<version>\\(.*\\)<\\/version>/\\1/\" > $(genDir)/version && " +
"sed -e \"s/\\$${project.version}/$$(cat $(genDir)/version)/\" " +
" $(location okhttp/src/main/java-templates/com/squareup/okhttp/internal/Version.java) " +
"> $(out)",
}
// A library to provide a stub android.util.Log symbol for
// okhttp/src/main/java/com/squareup/okhttp/internal/Platform.java
java_library {
name: "okhttp-android-util-log",
host_supported: true,
srcs: ["okhttp-android-util-log/src/main/java/**/*.java"],
sdk_version: "core_current",
}
java_library {
name: "okhttp-tests-nojarjar",
defaults: ["okhttp_errorprone_defaults"],
visibility: nojarjar_visibility,
srcs: [
"android/test/java/**/*.java",
"okhttp-android-support/src/test/java/**/*.java",
"okhttp-testing-support/src/main/java/**/*.java",
"okhttp-tests/src/test/java/**/*.java",
"okhttp-urlconnection/src/test/java/**/*.java",
"okhttp-ws/src/main/java/**/*.java",
"okhttp-ws-tests/src/test/java/**/*.java",
"okio/okio/src/test/java/**/*.java",
"mockwebserver/src/main/java/**/*.java",
"mockwebserver/src/test/java/**/*.java",
],
// Exclude test Android currently has problems with due to @Parameterized (requires JUnit 4.11).
exclude_srcs: ["okhttp-tests/src/test/java/com/squareup/okhttp/WebPlatformUrlTest.java"],
sdk_version: "none",
system_modules: "core-all-system-modules",
libs: [
"okhttp-nojarjar",
"junit",
"conscrypt.module.intra.core.api",
"bouncycastle-unbundled",
],
java_version: "1.7",
}