Ignore METADATA files in python packages shipped with prebuilts/clang, which are from upstream and not in the format used in Android.
Bug: 376319250
Test: m nothing, out/.module_paths/METADATA.list should contain only two METADATA files in prebuilts/clang: prebuilts/clang/host/linux-x86/METADATA and prebuilts/clang/host/darwin-x86/METADATA
Change-Id: I9933ef44c91db7334f1a65374f718beacb044612
diff --git a/ui/build/finder.go b/ui/build/finder.go
index a899822..da7f255 100644
--- a/ui/build/finder.go
+++ b/ui/build/finder.go
@@ -171,6 +171,7 @@
// Recursively look for all METADATA files.
metadataFiles := f.FindNamedAt(".", "METADATA")
+ metadataFiles = ignoreNonAndroidMetadataFiles(metadataFiles)
err = dumpListToFile(ctx, config, metadataFiles, filepath.Join(dumpDir, "METADATA.list"))
if err != nil {
ctx.Fatalf("Could not find METADATA: %v", err)
@@ -223,3 +224,16 @@
return nil
}
+
+func ignoreNonAndroidMetadataFiles(metadataFiles []string) []string {
+ result := make([]string, 0, len(metadataFiles))
+ for _, file := range metadataFiles {
+ // Ignore files like prebuilts/clang/host/linux-x86/clang-r536225/python3/lib/python3.11/site-packages/pip-23.1.2.dist-info/METADATA
+ // these METADATA files are from upstream and are not the METADATA files used in Android codebase.
+ if strings.Contains(file, "prebuilts/clang/host/") && strings.Contains(file, "/site-packages/") {
+ continue
+ }
+ result = append(result, file)
+ }
+ return result
+}