diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-10-31 15:28:47 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2018-10-31 21:37:34 -0700 |
commit | 419290aba90e8b8a97e5dc09aad0c3c9aa420ece (patch) | |
tree | 6df6592108d2d587a3503775b82a7517641f6c05 /java/java.go | |
parent | b259ede3249df172ed5ba0191547c715f241441c (diff) |
Support setting target_sdk_version separately from sdk_version
Before this change, if targetSdkVersion wasn't set in the
AndroidManifest.xml, we'd set it to the sdk_version from the Android.bp.
But there are cases where you want to compile against a later SDK, but
target an earlier one (especially if you depend on libraries that need
to be compiled against more recent SDKs, like androidx).
Test: build APK with different target_sdk_version.
Change-Id: Iaed36b522955a374a049ef331158cc8fc5798ad2
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/java/java.go b/java/java.go index 0f9547980..50c284a94 100644 --- a/java/java.go +++ b/java/java.go @@ -183,6 +183,10 @@ type CompilerDeviceProperties struct { // Defaults to sdk_version if not set. Min_sdk_version *string + // if not blank, set the targetSdkVersion in the AndroidManifest.xml. + // Defaults to sdk_version if not set. + Target_sdk_version *string + // if true, compile against the platform APIs instead of an SDK. Platform_apis *bool @@ -425,11 +429,20 @@ func (j *Module) minSdkVersion() string { return j.sdkVersion() } +func (j *Module) targetSdkVersion() string { + if j.deviceProperties.Target_sdk_version != nil { + return *j.deviceProperties.Target_sdk_version + } + return j.sdkVersion() +} + type sdkContext interface { // sdkVersion eturns the sdk_version property of the current module, or an empty string if it is not set. sdkVersion() string // minSdkVersion returns the min_sdk_version property of the current module, or sdkVersion() if it is not set. minSdkVersion() string + // targetSdkVersion returns the target_sdk_version property of the current module, or sdkVersion() if it is not set. + targetSdkVersion() string } func sdkVersionOrDefault(ctx android.BaseContext, v string) string { |