diff options
author | 2023-02-23 18:05:05 +0000 | |
---|---|---|
committer | 2023-02-23 18:05:05 +0000 | |
commit | c404cc79e9df9718428f980b0623cda6cdb26d7c (patch) | |
tree | d5fa17c78a6ac19c1becd619fb9a26bd2537c6b2 /java/dex.go | |
parent | 7eb9243fa78189000da9d5beeabaea3b8b2c0fd5 (diff) |
Revert "Revert "R8/D8 should use sdk_version prop to determine API surface stability.""
This reverts commit 7eb9243fa78189000da9d5beeabaea3b8b2c0fd5.
Reason for revert: The original change was reverted since it was suspected to cause missing libc++.so errors. It was a red herring, and the root cause has been fixed now b/264588525
Change-Id: Ib9110c41bacf220b91f24de11589f63235895e56
Diffstat (limited to 'java/dex.go')
-rw-r--r-- | java/dex.go | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/java/dex.go b/java/dex.go index 40ee99d3b..ed1f07b26 100644 --- a/java/dex.go +++ b/java/dex.go @@ -180,7 +180,7 @@ var r8, r8RE = pctx.MultiCommandRemoteStaticRules("r8", "r8Flags", "zipFlags", "tmpJar", "mergeZipsFlags"}, []string{"implicits"}) func (d *dexer) dexCommonFlags(ctx android.ModuleContext, - minSdkVersion android.SdkSpec) (flags []string, deps android.Paths) { + dexParams *compileDexParams) (flags []string, deps android.Paths) { flags = d.dexProperties.Dxflags // Translate all the DX flags to D8 ones until all the build files have been migrated @@ -209,11 +209,11 @@ func (d *dexer) dexCommonFlags(ctx android.ModuleContext, // Note: Targets with a min SDK kind of core_platform (e.g., framework.jar) or unspecified (e.g., // services.jar), are not classified as stable, which is WAI. // TODO(b/232073181): Expand to additional min SDK cases after validation. - if !minSdkVersion.Stable() { + if !dexParams.sdkVersion.Stable() { flags = append(flags, "--android-platform-build") } - effectiveVersion, err := minSdkVersion.EffectiveVersion(ctx) + effectiveVersion, err := dexParams.minSdkVersion.EffectiveVersion(ctx) if err != nil { ctx.PropertyErrorf("min_sdk_version", "%s", err) } @@ -317,20 +317,27 @@ func (d *dexer) r8Flags(ctx android.ModuleContext, flags javaBuilderFlags) (r8Fl return r8Flags, r8Deps } -func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, minSdkVersion android.SdkSpec, - classesJar android.Path, jarName string) android.OutputPath { +type compileDexParams struct { + flags javaBuilderFlags + sdkVersion android.SdkSpec + minSdkVersion android.SdkSpec + classesJar android.Path + jarName string +} + +func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParams) android.OutputPath { // Compile classes.jar into classes.dex and then javalib.jar - javalibJar := android.PathForModuleOut(ctx, "dex", jarName).OutputPath + javalibJar := android.PathForModuleOut(ctx, "dex", dexParams.jarName).OutputPath outDir := android.PathForModuleOut(ctx, "dex") - tmpJar := android.PathForModuleOut(ctx, "withres-withoutdex", jarName) + tmpJar := android.PathForModuleOut(ctx, "withres-withoutdex", dexParams.jarName) zipFlags := "--ignore_missing_files" if proptools.Bool(d.dexProperties.Uncompress_dex) { zipFlags += " -L 0" } - commonFlags, commonDeps := d.dexCommonFlags(ctx, minSdkVersion) + commonFlags, commonDeps := d.dexCommonFlags(ctx, dexParams) // Exclude kotlinc generated files when "exclude_kotlinc_generated_files" is set to true. mergeZipsFlags := "" @@ -347,7 +354,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, mi android.ModuleNameWithPossibleOverride(ctx), "unused.txt") proguardUsageZip := android.PathForModuleOut(ctx, "proguard_usage.zip") d.proguardUsageZip = android.OptionalPathForPath(proguardUsageZip) - r8Flags, r8Deps := d.r8Flags(ctx, flags) + r8Flags, r8Deps := d.r8Flags(ctx, dexParams.flags) r8Deps = append(r8Deps, commonDeps...) rule := r8 args := map[string]string{ @@ -370,12 +377,12 @@ func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, mi Description: "r8", Output: javalibJar, ImplicitOutputs: android.WritablePaths{proguardDictionary, proguardUsageZip}, - Input: classesJar, + Input: dexParams.classesJar, Implicits: r8Deps, Args: args, }) } else { - d8Flags, d8Deps := d8Flags(flags) + d8Flags, d8Deps := d8Flags(dexParams.flags) d8Deps = append(d8Deps, commonDeps...) rule := d8 if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_D8") { @@ -385,7 +392,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, mi Rule: rule, Description: "d8", Output: javalibJar, - Input: classesJar, + Input: dexParams.classesJar, Implicits: d8Deps, Args: map[string]string{ "d8Flags": strings.Join(append(commonFlags, d8Flags...), " "), @@ -397,7 +404,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, mi }) } if proptools.Bool(d.dexProperties.Uncompress_dex) { - alignedJavalibJar := android.PathForModuleOut(ctx, "aligned", jarName).OutputPath + alignedJavalibJar := android.PathForModuleOut(ctx, "aligned", dexParams.jarName).OutputPath TransformZipAlign(ctx, alignedJavalibJar, javalibJar) javalibJar = alignedJavalibJar } |