R8/D8 should use sdk_version prop to determine API surface stability.

`min_sdk_version` is used to represent the api_level of the device and
its type will eventually become android.ApiLevel. OTOH,
`sdk_version` property represents the API surface a module builds against
_and_ the version of that API surface. For
R8/D8, the additional `--android-platform-build` should be determined
using the sdk_version of the soong module and not min_sdk_version, since
min_sdk_version will not contain information about the api surface used
for compilation.

The unit test for `core_platform_app` in TestR8 were passing since
min_sdk_version was not set, and therefore it implicitly defaulted to
sdk_version.

Also created a custom struct to propagate params to the helper dex
functions

Test: In build/soong, go test ./java
Test: TH
Bug: 208456999
Change-Id: I08ac6f496444d603557e498c8a1794af665abc7a
This commit is contained in:
Spandan Das
2023-01-03 22:25:01 +00:00
parent a8b0bfbeab
commit daa220ae8c
4 changed files with 38 additions and 15 deletions

View File

@@ -41,6 +41,7 @@ func TestR8(t *testing.T) {
name: "core_platform_app",
srcs: ["foo.java"],
sdk_version: "core_platform",
min_sdk_version: "31",
}
java_library {