diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/java/java.go b/java/java.go index c2fcccf2f..1df45b804 100644 --- a/java/java.go +++ b/java/java.go @@ -2067,7 +2067,15 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.dexpreopter.uncompressedDex = *j.dexProperties.Uncompress_dex var dexOutputFile android.OutputPath - dexOutputFile = j.dexer.compileDex(ctx, flags, j.MinSdkVersion(ctx), outputFile, jarName) + dexParams := &compileDexParams{ + flags: flags, + sdkVersion: j.SdkVersion(ctx), + minSdkVersion: j.MinSdkVersion(ctx), + classesJar: outputFile, + jarName: jarName, + } + + dexOutputFile = j.dexer.compileDex(ctx, dexParams) if ctx.Failed() { return } @@ -2158,15 +2166,18 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { - sdkSpec := j.MinSdkVersion(ctx) - if !sdkSpec.Specified() { + sdkVersionSpec := j.SdkVersion(ctx) + minSdkVersionSpec := j.MinSdkVersion(ctx) + if !minSdkVersionSpec.Specified() { return fmt.Errorf("min_sdk_version is not specified") } - if sdkSpec.Kind == android.SdkCore { + // If the module is compiling against core (via sdk_version), skip comparison check. + if sdkVersionSpec.Kind == android.SdkCore { return nil } - if sdkSpec.ApiLevel.GreaterThan(sdkVersion) { - return fmt.Errorf("newer SDK(%v)", sdkSpec.ApiLevel) + minSdkVersion := minSdkVersionSpec.ApiLevel + if minSdkVersion.GreaterThan(sdkVersion) { + return fmt.Errorf("newer SDK(%v)", minSdkVersion) } return nil } @@ -2807,6 +2818,9 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) { if sdkVersion.Kind == android.SdkPublic && sdkVersion.ApiLevel == android.FutureApiLevel { // TODO(b/220869005) remove forced dependency on current public android.jar deps.Add(bazel.MakeLabelAttribute("//prebuilts/sdk:public_current_android_sdk_java_import")) + } else if sdkVersion.Kind == android.SdkSystem && sdkVersion.ApiLevel == android.FutureApiLevel { + // TODO(b/215230098) remove forced dependency on current public android.jar + deps.Add(bazel.MakeLabelAttribute("//prebuilts/sdk:system_current_android_sdk_java_import")) } } else if !deps.IsEmpty() { ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.") |