aboutsummaryrefslogtreecommitdiffstats
path: root/java/java.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go74
1 files changed, 27 insertions, 47 deletions
diff --git a/java/java.go b/java/java.go
index 7f82c77e..f6c94840 100644
--- a/java/java.go
+++ b/java/java.go
@@ -86,10 +86,6 @@ type CompilerProperties struct {
// ext, and framework for device targets)
No_framework_libs *bool
- // Use renamed kotlin stdlib (com.android.kotlin.*). This allows kotlin usage without colliding
- // with app-provided kotlin stdlib.
- Renamed_kotlin_stdlib *bool
-
// list of module-specific flags that will be used for javac compiles
Javacflags []string `android:"arch_variant"`
@@ -556,41 +552,41 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
if !Bool(j.properties.No_standard_libs) {
sdkDep := decodeSdkDep(ctx, sdkContext(j))
if sdkDep.useDefaultLibs {
- ctx.AddDependency(ctx.Module(), bootClasspathTag, config.DefaultBootclasspathLibraries...)
+ ctx.AddVariationDependencies(nil, bootClasspathTag, config.DefaultBootclasspathLibraries...)
if ctx.Config().TargetOpenJDK9() {
- ctx.AddDependency(ctx.Module(), systemModulesTag, config.DefaultSystemModules)
+ ctx.AddVariationDependencies(nil, systemModulesTag, config.DefaultSystemModules)
}
if !Bool(j.properties.No_framework_libs) {
- ctx.AddDependency(ctx.Module(), libTag, config.DefaultLibraries...)
+ ctx.AddVariationDependencies(nil, libTag, config.DefaultLibraries...)
}
} else if sdkDep.useModule {
if ctx.Config().TargetOpenJDK9() {
- ctx.AddDependency(ctx.Module(), systemModulesTag, sdkDep.systemModules)
+ ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
}
- ctx.AddDependency(ctx.Module(), bootClasspathTag, sdkDep.modules...)
+ ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.modules...)
if Bool(j.deviceProperties.Optimize.Enabled) {
- ctx.AddDependency(ctx.Module(), proguardRaiseTag, config.DefaultBootclasspathLibraries...)
- ctx.AddDependency(ctx.Module(), proguardRaiseTag, config.DefaultLibraries...)
+ ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultBootclasspathLibraries...)
+ ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultLibraries...)
}
}
} else if j.deviceProperties.System_modules == nil {
ctx.PropertyErrorf("no_standard_libs",
"system_modules is required to be set when no_standard_libs is true, did you mean no_framework_libs?")
} else if *j.deviceProperties.System_modules != "none" && ctx.Config().TargetOpenJDK9() {
- ctx.AddDependency(ctx.Module(), systemModulesTag, *j.deviceProperties.System_modules)
+ ctx.AddVariationDependencies(nil, systemModulesTag, *j.deviceProperties.System_modules)
}
if ctx.ModuleName() == "framework" {
- ctx.AddDependency(ctx.Module(), frameworkResTag, "framework-res")
+ ctx.AddVariationDependencies(nil, frameworkResTag, "framework-res")
}
if ctx.ModuleName() == "android_stubs_current" ||
ctx.ModuleName() == "android_system_stubs_current" ||
ctx.ModuleName() == "android_test_stubs_current" {
- ctx.AddDependency(ctx.Module(), frameworkApkTag, "framework-res")
+ ctx.AddVariationDependencies(nil, frameworkApkTag, "framework-res")
}
}
- ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...)
- ctx.AddDependency(ctx.Module(), staticLibTag, j.properties.Static_libs...)
+ ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
+ ctx.AddVariationDependencies(nil, staticLibTag, j.properties.Static_libs...)
ctx.AddFarVariationDependencies([]blueprint.Variation{
{Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant},
}, annoTag, j.properties.Annotation_processors...)
@@ -606,11 +602,11 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
if j.hasSrcExt(".kt") {
// TODO(ccross): move this to a mutator pass that can tell if generated sources contain
// Kotlin files
- ctx.AddDependency(ctx.Module(), kotlinStdlibTag, "kotlin-stdlib")
+ ctx.AddVariationDependencies(nil, kotlinStdlibTag, "kotlin-stdlib")
}
if j.shouldInstrumentStatic(ctx) {
- ctx.AddDependency(ctx.Module(), staticLibTag, "jacocoagent")
+ ctx.AddVariationDependencies(nil, staticLibTag, "jacocoagent")
}
}
@@ -1025,8 +1021,6 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
}
}
- var stripFiles []string
-
var kotlinJars android.Paths
if srcFiles.HasExt(".kt") {
@@ -1035,7 +1029,6 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
// won't emit any classes for them.
flags.kotlincFlags = "-no-stdlib"
-
if ctx.Device() {
flags.kotlincFlags += " -no-jdk"
}
@@ -1060,18 +1053,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
// Jar kotlin classes into the final jar after javac
kotlinJars = append(kotlinJars, kotlinJar)
-
- if Bool(j.properties.Renamed_kotlin_stdlib) {
- // Remove any kotlin-reflect related files
- // TODO(pszczepaniak): Support kotlin-reflect
- stripFiles = append(stripFiles,
- "**/*.kotlin_module",
- "**/*.kotlin_builtins")
- } else {
- // Only add kotlin-stdlib if not using (on-device) renamed stdlib
- // (it's expected to be on device bootclasspath)
- kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
- }
+ kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
}
jars := append(android.Paths(nil), kotlinJars...)
@@ -1207,21 +1189,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
} else {
combinedJar := android.PathForModuleOut(ctx, "combined", jarName)
TransformJarsToJar(ctx, combinedJar, "for javac", jars, manifest,
- false, stripFiles, nil)
+ false, nil, nil)
outputFile = combinedJar
}
- // Use renamed kotlin standard library?
- if srcFiles.HasExt(".kt") && Bool(j.properties.Renamed_kotlin_stdlib) {
- jarjarFile := android.PathForModuleOut(ctx, "kotlin-renamed", jarName)
- TransformJarJar(ctx, jarjarFile, outputFile,
- android.PathForSource(ctx, "external/kotlinc/jarjar-rules.txt"))
- outputFile = jarjarFile
- if ctx.Failed() {
- return
- }
- }
-
// jarjar implementation jar if necessary
if j.properties.Jarjar_rules != nil {
jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)
@@ -1611,6 +1582,9 @@ type ImportProperties struct {
// List of directories to remove from the jar file(s)
Exclude_dirs []string
+
+ // if set to true, run Jetifier against .jar file. Defaults to false.
+ Jetifier_enabled *bool
}
type Import struct {
@@ -1645,15 +1619,21 @@ func (j *Import) Name() string {
func (j *Import) DepsMutator(ctx android.BottomUpMutatorContext) {
android.ExtractSourcesDeps(ctx, j.properties.Jars)
- ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...)
+ ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
}
func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
jars := ctx.ExpandSources(j.properties.Jars, nil)
- outputFile := android.PathForModuleOut(ctx, "classes.jar")
+ jarName := ctx.ModuleName() + ".jar"
+ outputFile := android.PathForModuleOut(ctx, "combined", jarName)
TransformJarsToJar(ctx, outputFile, "for prebuilts", jars, android.OptionalPath{},
false, j.properties.Exclude_files, j.properties.Exclude_dirs)
+ if Bool(j.properties.Jetifier_enabled) {
+ inputFile := outputFile
+ outputFile = android.PathForModuleOut(ctx, "jetifier", jarName)
+ TransformJetifier(ctx, outputFile, inputFile)
+ }
j.combinedClasspathFile = outputFile
ctx.VisitDirectDeps(func(module android.Module) {