Add compat checking of the merged APIs

Compare the current merged txt to the last one checked into
prebuilts/sdk. For the system and module-lib APIs, also feed
the current public API in as the "base" API.

Bug: 174847574
Test: m frameworks-base-api-{,system-,module-lib-}current-compat
Change-Id: I7d4274ec1561be131c4f0298b49c05b24f03cb06
This commit is contained in:
Anton Hansson
2021-02-12 16:47:18 +00:00
parent a36c8d2b6a
commit 0d6eae6f1d

View File

@@ -59,6 +59,22 @@ genrule {
visibility: ["//visibility:public"],
}
genrule {
name: "frameworks-base-api-current-compat",
srcs: [
":android.api.public.latest",
":android-incompatibilities.api.public.latest",
":frameworks-base-api-current.txt",
],
out: ["stdout.txt"],
tools: ["metalava"],
cmd: "$(location metalava) --no-banner --format=v2 " +
"--check-compatibility:api:released $(location :android.api.public.latest) " +
"--baseline:compatibility:released $(location :android-incompatibilities.api.public.latest) " +
"$(location :frameworks-base-api-current.txt) " +
"> $(genDir)/stdout.txt",
}
genrule {
name: "frameworks-base-api-current.srcjar",
srcs: [
@@ -145,6 +161,24 @@ genrule {
visibility: ["//visibility:public"],
}
genrule {
name: "frameworks-base-api-system-current-compat",
srcs: [
":android.api.system.latest",
":android-incompatibilities.api.system.latest",
":frameworks-base-api-current.txt",
":frameworks-base-api-system-current.txt",
],
out: ["stdout.txt"],
tools: ["metalava"],
cmd: "$(location metalava) --no-banner --format=v2 " +
"--check-compatibility:api:released $(location :android.api.system.latest) " +
"--check-compatibility:base $(location :frameworks-base-api-current.txt) " +
"--baseline:compatibility:released $(location :android-incompatibilities.api.system.latest) " +
"$(location :frameworks-base-api-system-current.txt) " +
"> $(genDir)/stdout.txt",
}
genrule {
name: "frameworks-base-api-system-removed.txt",
srcs: [
@@ -206,6 +240,27 @@ genrule {
],
}
genrule {
name: "frameworks-base-api-module-lib-current-compat",
srcs: [
":android.api.module-lib.latest",
":android-incompatibilities.api.module-lib.latest",
":frameworks-base-api-current.txt",
":frameworks-base-api-module-lib-current.txt",
],
out: ["stdout.txt"],
tools: ["metalava"],
cmd: "$(location metalava) --no-banner --format=v2 " +
"--check-compatibility:api:released $(location :android.api.module-lib.latest) " +
// Note: having "public" be the base of module-lib is not perfect -- it should
// ideally be a merged public+system), but this will help when migrating from
// MODULE_LIBS -> public.
"--check-compatibility:base $(location :frameworks-base-api-current.txt) " +
"--baseline:compatibility:released $(location :android-incompatibilities.api.module-lib.latest) " +
"$(location :frameworks-base-api-module-lib-current.txt) " +
"> $(genDir)/stdout.txt",
}
genrule {
name: "frameworks-base-api-module-lib-removed.txt",
srcs: [