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

Commit ab15f964 authored by Inseob Kim's avatar Inseob Kim Committed by Gerrit Code Review
Browse files

Merge "Speed up vendor snapshot header globs"

parents 636b7678 0f93e5b9
Loading
Loading
Loading
Loading
+27 −13
Original line number Diff line number Diff line
@@ -449,23 +449,37 @@ func (l *libraryDecorator) collectHeadersForSnapshot(ctx android.ModuleContext)
			}
			continue
		}
		exts := headerExts
		// Glob all files under this special directory, because of C++ headers.
		if strings.HasPrefix(dir, "external/libcxx/include") {
			exts = []string{""}
		}
		for _, ext := range exts {
			glob, err := ctx.GlobWithDeps(dir+"/**/*"+ext, nil)
		glob, err := ctx.GlobWithDeps(dir+"/**/*", nil)
		if err != nil {
			ctx.ModuleErrorf("glob failed: %#v", err)
			return
		}
			for _, header := range glob {
				if strings.HasSuffix(header, "/") {
		isLibcxx := strings.HasPrefix(dir, "external/libcxx/include")
		j := 0
		for i, header := range glob {
			if isLibcxx {
				// Glob all files under this special directory, because of C++ headers with no
				// extension.
				if !strings.HasSuffix(header, "/") {
					continue
				}
				ret = append(ret, android.PathForSource(ctx, header))
			} else {
				// Filter out only the files with extensions that are headers.
				found := false
				for _, ext := range headerExts {
					if strings.HasSuffix(header, ext) {
						found = true
						break
					}
				}
				if !found {
					continue
				}
			}
			if i != j {
				glob[j] = glob[i]
			}
			j++
		}
	}