diff options
author | 2023-11-21 15:13:56 -0800 | |
---|---|---|
committer | 2023-11-29 10:31:13 -0800 | |
commit | 312634eb0fd02c2e084a6925c4f00e5fc00fca54 (patch) | |
tree | d267881b91fc694eda19bd6dabe961c3c1e56225 /java/java.go | |
parent | 80117e6c4fc10412f9a313eb6391546e2da3ee1a (diff) |
Don't write transitive dependencies to Android-${TARGET_PRODUCT}.mk
Java libraries were writing lists of files that changed whenever
transitive dependencies changed to Android-${TARGET_PRODUCT}.mk, causing
Kati analysis to rerun whenever a dependency was changed in Soong.
In both cases, Make would immediately use the list to write a single
output file. Write the files in Soong and pass the path to the file
to Make instead, which will both reduce the size of
Android-${TARGET_PRODUCT}.mk and skip Kati analysis more often.
Bug: 309006256
Test: m checkbuild
Change-Id: I5dff16c6fb7cca8c6da927b37c612c7b1d0954e6
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/java/java.go b/java/java.go index bb9357cc7..9f30ad3a5 100644 --- a/java/java.go +++ b/java/java.go @@ -639,7 +639,7 @@ func normalizeJavaVersion(ctx android.BaseModuleContext, javaVersion string) jav type Library struct { Module - exportedProguardFlagFiles android.Paths + combinedExportedProguardFlagsFile android.Path InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.InstallPaths) } @@ -700,8 +700,12 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { proguardSpecInfo := j.collectProguardSpecInfo(ctx) ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo) - j.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList() - j.extraProguardFlagFiles = append(j.extraProguardFlagFiles, j.exportedProguardFlagFiles...) + exportedProguardFlagsFiles := proguardSpecInfo.ProguardFlagsFiles.ToList() + j.extraProguardFlagsFiles = append(j.extraProguardFlagsFiles, exportedProguardFlagsFiles...) + + combinedExportedProguardFlagFile := android.PathForModuleOut(ctx, "export_proguard_flags") + writeCombinedProguardFlagsFile(ctx, combinedExportedProguardFlagFile, exportedProguardFlagsFiles) + j.combinedExportedProguardFlagsFile = combinedExportedProguardFlagFile apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo) if !apexInfo.IsForPlatform() { |