Merge "Reverse RRO dir paths when passing to Make" am: 5ddf292268
am: f5a9cca054
Change-Id: I90e4766ef62487963dd10b7138af01effcafef79
diff --git a/android/paths.go b/android/paths.go
index 87efe53..91dd9a6 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -308,6 +308,18 @@
return list[totalSkip:]
}
+// ReversePaths returns a copy of a Paths in reverse order.
+func ReversePaths(list Paths) Paths {
+ if list == nil {
+ return nil
+ }
+ ret := make(Paths, len(list))
+ for i := range list {
+ ret[i] = list[len(list)-1-i]
+ }
+ return ret
+}
+
func indexPathList(s Path, list []Path) int {
for i, l := range list {
if l == s {
diff --git a/android/paths_test.go b/android/paths_test.go
index 0075798..cd9fbfd 100644
--- a/android/paths_test.go
+++ b/android/paths_test.go
@@ -474,10 +474,7 @@
}
paths := makePaths()
- reversePaths := make(Paths, len(paths))
- for i, v := range paths {
- reversePaths[len(paths)-i-1] = v
- }
+ reversePaths := ReversePaths(paths)
sortedPaths := PathsToDirectorySortedPaths(paths)
reverseSortedPaths := PathsToDirectorySortedPaths(reversePaths)
diff --git a/java/androidmk.go b/java/androidmk.go
index dfbe7fa..8bde716 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -206,7 +206,9 @@
}
if len(app.rroDirs) > 0 {
- fmt.Fprintln(w, "LOCAL_SOONG_RRO_DIRS :=", strings.Join(app.rroDirs.Strings(), " "))
+ // Reverse the order, Soong stores rroDirs in aapt2 order (low to high priority), but Make
+ // expects it in LOCAL_RESOURCE_DIRS order (high to low priority).
+ fmt.Fprintln(w, "LOCAL_SOONG_RRO_DIRS :=", strings.Join(android.ReversePaths(app.rroDirs).Strings(), " "))
}
if Bool(app.appProperties.Export_package_resources) {