Convert more stored WritablePaths to Paths

Similar to I40f28075ce151e4be80d6cfc7ec173dfa46f9bbf, convert
more long-lived WritablePaths to Paths.

Test: all soong tests pass
Flag: EXEMPT refactor
Change-Id: I9be448f811694fe0524fbbd7c5d4553cf69d533a
This commit is contained in:
Colin Cross
2024-08-15 17:11:08 -07:00
parent 882d600d79
commit 77965d9bd4
2 changed files with 24 additions and 19 deletions

View File

@@ -1154,8 +1154,9 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
if Bool(a.properties.Jetifier) {
inputFile := a.aarPath
a.aarPath = android.PathForModuleOut(ctx, "jetifier", aarName)
TransformJetifier(ctx, a.aarPath.(android.WritablePath), inputFile)
jetifierPath := android.PathForModuleOut(ctx, "jetifier", aarName)
TransformJetifier(ctx, jetifierPath, inputFile)
a.aarPath = jetifierPath
}
jarName := ctx.ModuleName() + ".jar"
@@ -1306,11 +1307,12 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
addMissingOptionalUsesLibsFromDep(ctx, module, &a.usesLibrary)
})
var implementationJarFile android.OutputPath
var implementationJarFile android.Path
if len(staticJars) > 0 {
combineJars := append(android.Paths{classpathFile}, staticJars...)
implementationJarFile = android.PathForModuleOut(ctx, "combined", jarName).OutputPath
TransformJarsToJar(ctx, implementationJarFile, "combine", combineJars, android.OptionalPath{}, false, nil, nil)
combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName).OutputPath
TransformJarsToJar(ctx, combinedImplementationJar, "combine", combineJars, android.OptionalPath{}, false, nil, nil)
implementationJarFile = combinedImplementationJar
} else {
implementationJarFile = classpathFile
}
@@ -1329,7 +1331,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
implementationAndResourcesJar := implementationJarFile
if resourceJarFile != nil {
jars := android.Paths{resourceJarFile, implementationAndResourcesJar}
combinedJar := android.PathForModuleOut(ctx, "withres", jarName).OutputPath
combinedJar := android.PathForModuleOut(ctx, "withres", jarName)
TransformJarsToJar(ctx, combinedJar, "for resources", jars, android.OptionalPath{},
false, nil, nil)
implementationAndResourcesJar = combinedJar

View File

@@ -2664,43 +2664,46 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
// Always pass the input jars to TransformJarsToJar, even if there is only a single jar, we need the output
// file of the module to be named jarName.
outputFile := android.PathForModuleOut(ctx, "combined", jarName)
var outputFile android.Path
combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName)
implementationJars := append(slices.Clone(jars), staticJars...)
TransformJarsToJar(ctx, outputFile, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{},
TransformJarsToJar(ctx, combinedImplementationJar, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{},
false, j.properties.Exclude_files, j.properties.Exclude_dirs)
outputFile = combinedImplementationJar
// If no dependencies have separate header jars then there is no need to create a separate
// header jar for this module.
reuseImplementationJarAsHeaderJar := slices.Equal(staticJars, staticHeaderJars)
var headerOutputFile android.ModuleOutPath
var headerJar android.Path
if reuseImplementationJarAsHeaderJar {
headerOutputFile = outputFile
headerJar = outputFile
} else {
headerJars := append(slices.Clone(jars), staticHeaderJars...)
headerOutputFile = android.PathForModuleOut(ctx, "turbine-combined", jarName)
headerOutputFile := android.PathForModuleOut(ctx, "turbine-combined", jarName)
TransformJarsToJar(ctx, headerOutputFile, "combine prebuilt header jars", headerJars, android.OptionalPath{},
false, j.properties.Exclude_files, j.properties.Exclude_dirs)
headerJar = headerOutputFile
}
if Bool(j.properties.Jetifier) {
inputFile := outputFile
outputFile = android.PathForModuleOut(ctx, "jetifier", jarName)
TransformJetifier(ctx, outputFile, inputFile)
jetifierOutputFile := android.PathForModuleOut(ctx, "jetifier", jarName)
TransformJetifier(ctx, jetifierOutputFile, outputFile)
outputFile = jetifierOutputFile
if !reuseImplementationJarAsHeaderJar {
headerInputFile := headerOutputFile
headerOutputFile = android.PathForModuleOut(ctx, "jetifier-headers", jarName)
TransformJetifier(ctx, headerOutputFile, headerInputFile)
jetifierHeaderJar := android.PathForModuleOut(ctx, "jetifier-headers", jarName)
TransformJetifier(ctx, jetifierHeaderJar, headerJar)
headerJar = jetifierHeaderJar
} else {
headerOutputFile = outputFile
headerJar = outputFile
}
}
// Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource.
// Also strip the relative path from the header output file so that the reuseImplementationJarAsHeaderJar check
// in a module that depends on this module considers them equal.
j.combinedHeaderFile = headerOutputFile.WithoutRel()
j.combinedHeaderFile = headerJar.WithoutRel()
j.combinedImplementationFile = outputFile.WithoutRel()
j.maybeInstall(ctx, jarName, outputFile)