AAPT2: Keep file enumeration consistent across platforms
Filesystem directory enumeration is platform dependent, so
sort the files lexicographically according to source path before
consuming them in the compile command.
Bug: 70680618
Test: manual
Change-Id: I6706dea2eb40cbaff8a586994dd1013976e4ced4
diff --git a/tools/aapt2/cmd/Compile.cpp b/tools/aapt2/cmd/Compile.cpp
index 7c1e96e..3bec082 100644
--- a/tools/aapt2/cmd/Compile.cpp
+++ b/tools/aapt2/cmd/Compile.cpp
@@ -186,6 +186,12 @@
out_path_data->push_back(std::move(path_data.value()));
}
}
+
+ // File-system directory enumeration order is platform-dependent. Sort the result to remove any
+ // inconsistencies between platforms.
+ std::sort(
+ out_path_data->begin(), out_path_data->end(),
+ [](const ResourcePathData& a, const ResourcePathData& b) { return a.source < b.source; });
return true;
}