summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-10-31 15:28:47 -0700
committerDan Willemsen <dwillemsen@google.com>2018-10-31 21:37:34 -0700
commit419290aba90e8b8a97e5dc09aad0c3c9aa420ece (patch)
tree6df6592108d2d587a3503775b82a7517641f6c05 /java/java.go
parentb259ede3249df172ed5ba0191547c715f241441c (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.go13
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 {