summaryrefslogtreecommitdiff
path: root/java/base.go
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2025-03-04 14:56:51 -0800
committer Colin Cross <ccross@android.com> 2025-03-05 11:35:47 -0800
commit4f374518f9797267c7067be128ab2a87dd984370 (patch)
tree47e51e2d90366976fbc84e9ca1728bd5aa5af17c /java/base.go
parente99ce05d948f1847181006b3fc8a8a810ea2a60b (diff)
Put manifest in header jars
The kotlinx.serialization kotlin plugin reads the manifest of the kotlinx.serialization runtime header jar. Insert the manifest into header jars. Bug: 363909427 Test: kotlinx_serialization_core_tests Change-Id: I89007b5a8667ebbd3cc7409731001d97ae4b6f95
Diffstat (limited to 'java/base.go')
-rw-r--r--java/base.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/java/base.go b/java/base.go
index 0833831fc..1fb44e779 100644
--- a/java/base.go
+++ b/java/base.go
@@ -1160,7 +1160,14 @@ func (j *Module) addGeneratedSrcJars(path android.Path) {
j.properties.Generated_srcjars = append(j.properties.Generated_srcjars, path)
}
-func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspathJars, extraCombinedJars, extraDepCombinedJars android.Paths) *JavaInfo {
+func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspathJars, extraCombinedJars,
+ extraDepCombinedJars android.Paths) *JavaInfo {
+
+ manifest := j.overrideManifest
+ if !manifest.Valid() && j.properties.Manifest != nil {
+ manifest = android.OptionalPathForPath(android.PathForModuleSrc(ctx, *j.properties.Manifest))
+ }
+
// Auto-propagating jarjar rules
jarjarProviderData := j.collectJarJarRules(ctx)
if jarjarProviderData != nil {
@@ -1281,7 +1288,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
transitiveStaticLibsHeaderJars := deps.transitiveStaticLibsHeaderJars
localHeaderJars, combinedHeaderJarFile := j.compileJavaHeader(ctx, uniqueJavaFiles, srcJars, deps, flags, jarName,
- extraCombinedJars)
+ extraCombinedJars, manifest)
combinedHeaderJarFile, jarjared := j.jarjarIfNecessary(ctx, combinedHeaderJarFile, jarName, "turbine", false)
if jarjared {
@@ -1394,7 +1401,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
kotlinJar := android.PathForModuleOut(ctx, "kotlin", jarName)
kotlinHeaderJar := android.PathForModuleOut(ctx, "kotlin_headers", jarName)
- j.kotlinCompile(ctx, kotlinJar, kotlinHeaderJar, uniqueSrcFiles, kotlinCommonSrcFiles, srcJars, flags)
+ j.kotlinCompile(ctx, kotlinJar, kotlinHeaderJar, uniqueSrcFiles, kotlinCommonSrcFiles, srcJars, flags, manifest)
if ctx.Failed() {
return nil
}
@@ -1429,7 +1436,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
extraJars := slices.Clone(kotlinHeaderJars)
extraJars = append(extraJars, extraCombinedJars...)
var combinedHeaderJarFile android.Path
- localHeaderJars, combinedHeaderJarFile = j.compileJavaHeader(ctx, uniqueJavaFiles, srcJars, deps, flags, jarName, extraJars)
+ localHeaderJars, combinedHeaderJarFile = j.compileJavaHeader(ctx, uniqueJavaFiles, srcJars, deps, flags, jarName, extraJars, manifest)
shardingHeaderJars = localHeaderJars
var jarjared bool
@@ -1610,11 +1617,6 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
combinedResourceJar = combinedJar
}
- manifest := j.overrideManifest
- if !manifest.Valid() && j.properties.Manifest != nil {
- manifest = android.OptionalPathForPath(android.PathForModuleSrc(ctx, *j.properties.Manifest))
- }
-
// Combine the classes built from sources, any manifests, and any static libraries into
// classes.jar. If there is only one input jar this step will be skipped.
var outputFile android.Path
@@ -2069,7 +2071,7 @@ func CheckKotlincFlags(ctx android.ModuleContext, flags []string) {
func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles, srcJars android.Paths,
deps deps, flags javaBuilderFlags, jarName string,
- extraJars android.Paths) (localHeaderJars android.Paths, combinedHeaderJar android.Path) {
+ extraJars android.Paths, manifest android.OptionalPath) (localHeaderJars android.Paths, combinedHeaderJar android.Path) {
if len(srcFiles) > 0 || len(srcJars) > 0 {
// Compile java sources into turbine.jar.
@@ -2088,7 +2090,7 @@ func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles, srcJars
// we cannot skip the combine step for now if there is only one jar
// since we have to strip META-INF/TRANSITIVE dir from turbine.jar
combinedHeaderJarOutputPath := android.PathForModuleOut(ctx, "turbine-combined", jarName)
- TransformJarsToJar(ctx, combinedHeaderJarOutputPath, "for turbine", jars, android.OptionalPath{},
+ TransformJarsToJar(ctx, combinedHeaderJarOutputPath, "for turbine", jars, manifest,
false, nil, []string{"META-INF/TRANSITIVE"})
return localHeaderJars, combinedHeaderJarOutputPath