blob: 4fe55fb743ffa696246b2215759b7795a14af582 [file] [log] [blame]
load("//tools/base/bazel:android.bzl", "dex_library")
load("//tools/base/bazel:utils.bzl", "java_jarjar")
package(default_visibility = ["//visibility:public"])
filegroup(
name = "supportlib-srcs",
srcs = glob(["supportlib/src/main/**/*.java"]),
visibility = ["//visibility:private"],
)
filegroup(
name = "echo-sample-srcs",
srcs = glob(["echo-sample/src/main/**/*.java"]),
visibility = ["//visibility:private"],
)
# Since Energy profiler doesn't support compile-time instrumentation, don't include the src
# to avoid adding its dependencies.
filegroup(
name = "common-srcs-excluding-energy",
srcs = glob(
include = ["common/src/main/**/*.java"],
exclude = ["common/src/main/java/com/android/tools/profiler/support/energy/**/*.java"],
),
visibility = ["//visibility:private"],
)
filegroup(
name = "common-srcs",
srcs = glob(["common/src/main/**/*.java"]),
visibility = ["//visibility:private"],
)
filegroup(
name = "perfa-srcs",
srcs = glob(["perfa/src/main/**/*.java"]),
visibility = ["//visibility:private"],
)
java_library(
name = "studio-profiler",
srcs = [
":common-srcs-excluding-energy",
":echo-sample-srcs",
":supportlib-srcs",
],
resource_jars = select({
"//tools/base/bazel:windows": [],
"//conditions:default": ["//tools/base/profiler/native/agent:supportjni"],
}),
deps = [
"//prebuilts/studio/sdk:platforms/latest_jar",
"@maven//:androidx.annotation.annotation",
],
)
java_library(
name = "perfa_java_core",
srcs = [
":common-srcs",
":echo-sample-srcs",
":perfa-srcs",
],
deps = [
"//prebuilts/studio/sdk:platforms/latest_jar",
# TODO(b/77923456): Track version changes and revisit.
"//prebuilts/tools/common/m2:com.google.android.gms.play-services-location.11.8.0",
"@maven//:androidx.annotation.annotation",
],
)
java_jarjar(
name = "perfa_java",
srcs = [
":perfa_java_core",
],
rules = "//tools/base/bazel:jarjar_rules.txt",
)
dex_library(
name = "perfa",
jars = [
":perfa_java",
"//prebuilts/tools/common/m2:androidx.inspection.inspection.1.0.0",
"//tools/base/app-inspection/agent",
],
)
java_library(
name = "perfa_okhttp_java",
srcs = glob([
"perfa-okhttp/src/main/**/*.java",
]),
deps = [
":perfa_java",
"//prebuilts/studio/sdk:platforms/latest_jar",
"@maven//:androidx.annotation.annotation",
"@maven//:com.squareup.okhttp.okhttp",
"@maven//:com.squareup.okhttp3.okhttp",
"@maven//:com.squareup.okio.okio",
],
)
dex_library(
name = "perfa_okhttp_dex_jar",
jars = [":perfa_okhttp_java"],
output = "perfa_okhttp_dex.jar",
)
# D8 does not allow generating multiple classes to a single dex file because
# of multidex. We are going to tell it to output to a zip file first and
# then extract classes.dex to it as our perfa_okhttp.dex. If this dex file
# over flows, add classes02.dex to it (and whatever needs to be done to upload
# to the device as well)
genrule(
name = "perfa_okhttp",
srcs = [":perfa_okhttp_dex.jar"],
outs = ["perfa_okhttp.dex"],
# Assumes everything fits into classes.dex, add classes02.dex should when it is full
cmd = "$(location //tools/base/bazel:unzipper) $(location :perfa_okhttp_dex.jar) classes.dex:$(location :perfa_okhttp.dex)",
tools = ["//tools/base/bazel:unzipper"],
)