diff --git a/java/aar.go b/java/aar.go index 3ab07cc90..a49aef0a2 100644 --- a/java/aar.go +++ b/java/aar.go @@ -413,6 +413,10 @@ func (a *AARImport) minSdkVersion() string { return a.sdkVersion() } +func (a *AARImport) targetSdkVersion() string { + return a.sdkVersion() +} + var _ AndroidLibraryDependency = (*AARImport)(nil) func (a *AARImport) ExportPackage() android.Path { diff --git a/java/android_manifest.go b/java/android_manifest.go index 168a22d31..36f24ff97 100644 --- a/java/android_manifest.go +++ b/java/android_manifest.go @@ -58,7 +58,7 @@ func manifestMerger(ctx android.ModuleContext, manifest android.Path, sdkContext Output: fixedManifest, Args: map[string]string{ "minSdkVersion": sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()), - "targetSdkVersion": sdkVersionOrDefault(ctx, sdkContext.sdkVersion()), + "targetSdkVersion": sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion()), "args": strings.Join(args, " "), }, }) diff --git a/java/droiddoc.go b/java/droiddoc.go index 23614ec67..b724e1541 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -484,6 +484,10 @@ func (j *Javadoc) minSdkVersion() string { return j.sdkVersion() } +func (j *Javadoc) targetSdkVersion() string { + return j.sdkVersion() +} + func (j *Javadoc) addDeps(ctx android.BottomUpMutatorContext) { if ctx.Device() { if !Bool(j.properties.No_standard_libs) { 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 {