From d1d8f17e9e942d1c42862320f8ab9419336f5b29 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 29 Jul 2024 11:30:29 -0700 Subject: [PATCH] Move kotlin stdlib after javac jars A future CL is going to treat local jars separately from dependency jars. Rearrange the order of the kotlin standard library jars to come after the local jars produced by javac, which will better match the future ordering and ease ninja file comparisions. Bug: 308016794 Test: all soong tests pass Flag: EXEMPT refactor Change-Id: I9ed6a649350451bf1788077752db5222f50c0247 --- java/base.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/java/base.go b/java/base.go index 65a8b30c8..9c1d8fb8e 100644 --- a/java/base.go +++ b/java/base.go @@ -1211,6 +1211,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath var kotlinJars android.Paths var kotlinHeaderJars android.Paths + var kotlinExtraJars android.Paths // Prepend extraClasspathJars to classpath so that the resource processor R.jar comes before // any dependencies so that it can override any non-final R classes from dependencies with the @@ -1321,17 +1322,8 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath kotlinJars = append(kotlinJars, kotlinJarPath) kotlinHeaderJars = append(kotlinHeaderJars, kotlinHeaderJar) - - // Jar kotlin classes into the final jar after javac - if BoolDefault(j.properties.Static_kotlin_stdlib, true) { - kotlinJars = append(kotlinJars, deps.kotlinStdlib...) - kotlinJars = append(kotlinJars, deps.kotlinAnnotations...) - kotlinHeaderJars = append(kotlinHeaderJars, deps.kotlinStdlib...) - kotlinHeaderJars = append(kotlinHeaderJars, deps.kotlinAnnotations...) - } else { - flags.dexClasspath = append(flags.dexClasspath, deps.kotlinStdlib...) - flags.dexClasspath = append(flags.dexClasspath, deps.kotlinAnnotations...) - } + kotlinExtraJars = append(kotlinExtraJars, deps.kotlinStdlib...) + kotlinExtraJars = append(kotlinExtraJars, deps.kotlinAnnotations...) } jars := slices.Clone(kotlinJars) @@ -1349,7 +1341,11 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath // allow for the use of annotation processors that do function correctly // with sharding enabled. See: b/77284273. } - extraJars := append(slices.Clone(kotlinHeaderJars), extraCombinedJars...) + extraJars := slices.Clone(kotlinHeaderJars) + if BoolDefault(j.properties.Static_kotlin_stdlib, true) { + extraJars = append(extraJars, kotlinExtraJars...) + } + extraJars = append(extraJars, extraCombinedJars...) var combinedHeaderJarFile android.Path headerJarFileWithoutDepsOrJarjar, combinedHeaderJarFile = j.compileJavaHeader(ctx, uniqueJavaFiles, srcJars, deps, flags, jarName, extraJars) @@ -1427,6 +1423,13 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath } } + // Jar kotlin classes into the final jar after javac + if BoolDefault(j.properties.Static_kotlin_stdlib, true) { + jars = append(jars, kotlinExtraJars...) + } else { + flags.dexClasspath = append(flags.dexClasspath, kotlinExtraJars...) + } + jars = append(jars, extraCombinedJars...) j.srcJarArgs, j.srcJarDeps = resourcePathsToJarArgs(srcFiles), srcFiles