Support subtracting sources from globs

Support -file or -path/glob in file lists that contain globs to
subtract files from the resulting glob.  Also move source file
prefixing and handling into a common function.

Change-Id: Ib6d74ce22f53cae7348c4ba35b779976d90359a6
This commit is contained in:
Colin Cross
2015-04-08 11:21:40 -07:00
parent 1332b0035c
commit fce532760f
6 changed files with 34 additions and 16 deletions

View File

@@ -68,16 +68,23 @@ func hasGlob(in []string) bool {
return false
}
func ExpandGlobs(ctx AndroidModuleContext, in []string) []string {
func expandGlobs(ctx AndroidModuleContext, in []string) []string {
if !hasGlob(in) {
return in
}
var excludes []string
for _, s := range in {
if s[0] == '-' {
excludes = append(excludes, s[1:])
}
}
out := make([]string, 0, len(in))
for _, s := range in {
if glob.IsGlob(s) {
out = append(out, Glob(ctx, s)...)
} else {
out = append(out, Glob(ctx, s, excludes)...)
} else if s[0] != '-' {
out = append(out, s)
}
}
@@ -85,12 +92,10 @@ func ExpandGlobs(ctx AndroidModuleContext, in []string) []string {
return out
}
func Glob(ctx AndroidModuleContext, globPattern string) []string {
func Glob(ctx AndroidModuleContext, globPattern string, excludes []string) []string {
fileListFile := filepath.Join(ModuleOutDir(ctx), "glob", globToString(globPattern))
depFile := fileListFile + ".d"
var excludes []string
// Get a globbed file list, and write out fileListFile and depFile
files, err := glob.GlobWithDepFile(globPattern, fileListFile, depFile, excludes)
if err != nil {