Merge "Remove asset dir glob files" into main

This commit is contained in:
Treehugger Robot
2024-09-06 16:22:06 +00:00
committed by Gerrit Code Review
3 changed files with 10 additions and 22 deletions

View File

@@ -15,10 +15,10 @@
package java
import (
"crypto/sha256"
"fmt"
"path/filepath"
"slices"
"strconv"
"strings"
"android/soong/android"
@@ -236,18 +236,20 @@ func (a *aapt) aapt2Flags(ctx android.ModuleContext, sdkContext android.SdkConte
rroDirs = append(rroDirs, resRRODirs...)
}
assetDirsHasher := sha256.New()
var assetDeps android.Paths
for i, dir := range assetDirs {
for _, dir := range assetDirs {
// Add a dependency on every file in the asset directory. This ensures the aapt2
// rule will be rerun if one of the files in the asset directory is modified.
assetDeps = append(assetDeps, androidResourceGlob(ctx, dir)...)
dirContents := androidResourceGlob(ctx, dir)
assetDeps = append(assetDeps, dirContents...)
// Add a dependency on a file that contains a list of all the files in the asset directory.
// Add a hash of all the files in the asset directory to the command line.
// This ensures the aapt2 rule will be run if a file is removed from the asset directory,
// or a file is added whose timestamp is older than the output of aapt2.
assetFileListFile := android.PathForModuleOut(ctx, "asset_dir_globs", strconv.Itoa(i)+".glob")
androidResourceGlobList(ctx, dir, assetFileListFile)
assetDeps = append(assetDeps, assetFileListFile)
for _, path := range dirContents.Strings() {
assetDirsHasher.Write([]byte(path))
}
}
assetDirStrings := assetDirs.Strings()
@@ -282,6 +284,7 @@ func (a *aapt) aapt2Flags(ctx android.ModuleContext, sdkContext android.SdkConte
linkDeps = append(linkDeps, manifestPath)
linkFlags = append(linkFlags, android.JoinWithPrefix(assetDirStrings, "-A "))
linkFlags = append(linkFlags, fmt.Sprintf("$$(: %x)", assetDirsHasher.Sum(nil)))
linkDeps = append(linkDeps, assetDeps...)
// Returns the effective version for {min|target}_sdk_version