From 0b67a8bd0fc87c7c584d165abfeeb9314ce22f18 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 18 Jun 2020 15:52:01 -0700 Subject: [PATCH] Allow kotlin modules to skip packaging the kotlin stdlib Host tools like lint may package their own version of the kotlin stdlib, and any jars loaded by them shouldn't contain the platform version. Add a static_kotlin_stdlib property that defaults to true to allow building the module without staticalling including the kotlin stdlib. Bug: 153485543 Test: m ApiFinder Change-Id: I7da78ef493806ce4ab0050e4ee9e8d330b0509c8 --- java/java.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/java/java.go b/java/java.go index 3ce25759a..7ef55c97e 100644 --- a/java/java.go +++ b/java/java.go @@ -253,6 +253,9 @@ type CompilerProperties struct { // List of files to include in the META-INF/services folder of the resulting jar. Services []string `android:"path,arch_variant"` + + // If true, package the kotlin stdlib into the jar. Defaults to true. + Static_kotlin_stdlib *bool `android:"arch_variant"` } type CompilerDeviceProperties struct { @@ -1368,9 +1371,11 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { // Make javac rule depend on the kotlinc rule flags.classpath = append(flags.classpath, kotlinJar) - // Jar kotlin classes into the final jar after javac kotlinJars = append(kotlinJars, kotlinJar) - kotlinJars = append(kotlinJars, deps.kotlinStdlib...) + // Jar kotlin classes into the final jar after javac + if BoolDefault(j.properties.Static_kotlin_stdlib, true) { + kotlinJars = append(kotlinJars, deps.kotlinStdlib...) + } } jars := append(android.Paths(nil), kotlinJars...)