Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2c204c6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Remove asset dir glob files" into main

parents 399ff401 6265120c
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ package android

import (
	"github.com/google/blueprint"
	"github.com/google/blueprint/bootstrap"
)

var (
@@ -120,8 +119,3 @@ func init() {
		return ctx.Config().RBEWrapper()
	})
}

// GlobToListFileRule creates a rule that writes a list of files matching a pattern to a file.
func GlobToListFileRule(ctx ModuleContext, pattern string, excludes []string, file WritablePath) {
	bootstrap.GlobFile(ctx.blueprintModuleContext(), pattern, excludes, file.String())
}
+10 −7
Original line number Diff line number Diff line
@@ -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
+0 −9
Original line number Diff line number Diff line
@@ -39,15 +39,6 @@ func androidResourceGlob(ctx android.EarlyModuleContext, dir android.Path) andro
	return ctx.GlobFiles(filepath.Join(dir.String(), "**/*"), androidResourceIgnoreFilenames)
}

// androidResourceGlobList creates a rule to write the list of files in the given directory, using
// the standard exclusion patterns for Android resources, to the given output file.
func androidResourceGlobList(ctx android.ModuleContext, dir android.Path,
	fileListFile android.WritablePath) {

	android.GlobToListFileRule(ctx, filepath.Join(dir.String(), "**/*"),
		androidResourceIgnoreFilenames, fileListFile)
}

type overlayType int

const (