summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/base.go9
-rw-r--r--java/dex.go33
-rw-r--r--java/dex_test.go1
-rw-r--r--java/java.go28
4 files changed, 23 insertions, 48 deletions
diff --git a/java/base.go b/java/base.go
index 6e42aef33..55d77dc4a 100644
--- a/java/base.go
+++ b/java/base.go
@@ -1488,14 +1488,7 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
}
// Dex compilation
var dexOutputFile android.OutputPath
- params := &compileDexParams{
- flags: flags,
- sdkVersion: j.SdkVersion(ctx),
- minSdkVersion: j.MinSdkVersion(ctx),
- classesJar: implementationAndResourcesJar,
- jarName: jarName,
- }
- dexOutputFile = j.dexer.compileDex(ctx, params)
+ dexOutputFile = j.dexer.compileDex(ctx, flags, j.MinSdkVersion(ctx), implementationAndResourcesJar, jarName)
if ctx.Failed() {
return
}
diff --git a/java/dex.go b/java/dex.go
index ed1f07b26..40ee99d3b 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,
- dexParams *compileDexParams) (flags []string, deps android.Paths) {
+ minSdkVersion android.SdkSpec) (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 !dexParams.sdkVersion.Stable() {
+ if !minSdkVersion.Stable() {
flags = append(flags, "--android-platform-build")
}
- effectiveVersion, err := dexParams.minSdkVersion.EffectiveVersion(ctx)
+ effectiveVersion, err := minSdkVersion.EffectiveVersion(ctx)
if err != nil {
ctx.PropertyErrorf("min_sdk_version", "%s", err)
}
@@ -317,27 +317,20 @@ func (d *dexer) r8Flags(ctx android.ModuleContext, flags javaBuilderFlags) (r8Fl
return r8Flags, r8Deps
}
-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 {
+func (d *dexer) compileDex(ctx android.ModuleContext, flags javaBuilderFlags, minSdkVersion android.SdkSpec,
+ classesJar android.Path, jarName string) android.OutputPath {
// Compile classes.jar into classes.dex and then javalib.jar
- javalibJar := android.PathForModuleOut(ctx, "dex", dexParams.jarName).OutputPath
+ javalibJar := android.PathForModuleOut(ctx, "dex", jarName).OutputPath
outDir := android.PathForModuleOut(ctx, "dex")
- tmpJar := android.PathForModuleOut(ctx, "withres-withoutdex", dexParams.jarName)
+ tmpJar := android.PathForModuleOut(ctx, "withres-withoutdex", jarName)
zipFlags := "--ignore_missing_files"
if proptools.Bool(d.dexProperties.Uncompress_dex) {
zipFlags += " -L 0"
}
- commonFlags, commonDeps := d.dexCommonFlags(ctx, dexParams)
+ commonFlags, commonDeps := d.dexCommonFlags(ctx, minSdkVersion)
// Exclude kotlinc generated files when "exclude_kotlinc_generated_files" is set to true.
mergeZipsFlags := ""
@@ -354,7 +347,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParam
android.ModuleNameWithPossibleOverride(ctx), "unused.txt")
proguardUsageZip := android.PathForModuleOut(ctx, "proguard_usage.zip")
d.proguardUsageZip = android.OptionalPathForPath(proguardUsageZip)
- r8Flags, r8Deps := d.r8Flags(ctx, dexParams.flags)
+ r8Flags, r8Deps := d.r8Flags(ctx, flags)
r8Deps = append(r8Deps, commonDeps...)
rule := r8
args := map[string]string{
@@ -377,12 +370,12 @@ func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParam
Description: "r8",
Output: javalibJar,
ImplicitOutputs: android.WritablePaths{proguardDictionary, proguardUsageZip},
- Input: dexParams.classesJar,
+ Input: classesJar,
Implicits: r8Deps,
Args: args,
})
} else {
- d8Flags, d8Deps := d8Flags(dexParams.flags)
+ d8Flags, d8Deps := d8Flags(flags)
d8Deps = append(d8Deps, commonDeps...)
rule := d8
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_D8") {
@@ -392,7 +385,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParam
Rule: rule,
Description: "d8",
Output: javalibJar,
- Input: dexParams.classesJar,
+ Input: classesJar,
Implicits: d8Deps,
Args: map[string]string{
"d8Flags": strings.Join(append(commonFlags, d8Flags...), " "),
@@ -404,7 +397,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParam
})
}
if proptools.Bool(d.dexProperties.Uncompress_dex) {
- alignedJavalibJar := android.PathForModuleOut(ctx, "aligned", dexParams.jarName).OutputPath
+ alignedJavalibJar := android.PathForModuleOut(ctx, "aligned", jarName).OutputPath
TransformZipAlign(ctx, alignedJavalibJar, javalibJar)
javalibJar = alignedJavalibJar
}
diff --git a/java/dex_test.go b/java/dex_test.go
index cddd4ad83..fc6cd0f3f 100644
--- a/java/dex_test.go
+++ b/java/dex_test.go
@@ -41,7 +41,6 @@ func TestR8(t *testing.T) {
name: "core_platform_app",
srcs: ["foo.java"],
sdk_version: "core_platform",
- min_sdk_version: "31",
}
java_library {
diff --git a/java/java.go b/java/java.go
index e83678ed1..6d53e1e32 100644
--- a/java/java.go
+++ b/java/java.go
@@ -2005,15 +2005,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
j.dexpreopter.uncompressedDex = *j.dexProperties.Uncompress_dex
var dexOutputFile android.OutputPath
- dexParams := &compileDexParams{
- flags: flags,
- sdkVersion: j.SdkVersion(ctx),
- minSdkVersion: j.MinSdkVersion(ctx),
- classesJar: outputFile,
- jarName: jarName,
- }
-
- dexOutputFile = j.dexer.compileDex(ctx, dexParams)
+ dexOutputFile = j.dexer.compileDex(ctx, flags, j.MinSdkVersion(ctx), outputFile, jarName)
if ctx.Failed() {
return
}
@@ -2764,14 +2756,6 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) {
Rule_class: "java_library",
Bzl_load_location: "//build/bazel/rules/java:library.bzl",
}
-
- ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
- neverlinkProp := true
- neverLinkAttrs := &javaLibraryAttributes{
- Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + name}),
- Neverlink: bazel.BoolAttribute{Value: &neverlinkProp},
- }
- ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name + "-neverlink"}, neverLinkAttrs)
} else {
attrs.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, m.properties.Common_srcs))
@@ -2779,10 +2763,16 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) {
Rule_class: "kt_jvm_library",
Bzl_load_location: "@rules_kotlin//kotlin:jvm_library.bzl",
}
- // TODO (b/244210934): create neverlink-duplicate target once kt_jvm_library supports neverlink attribute
- ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
}
+ ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
+ neverlinkProp := true
+ neverLinkAttrs := &javaLibraryAttributes{
+ Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + name}),
+ Neverlink: bazel.BoolAttribute{Value: &neverlinkProp},
+ }
+ ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name + "-neverlink"}, neverLinkAttrs)
+
}
type javaBinaryHostAttributes struct {