aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2017-12-01 10:48:26 -0800
committerColin Cross <ccross@android.com>2017-12-01 19:16:42 +0000
commitb69301ee9696d83a75f88ad38d6e27cc6f14b76a (patch)
tree9e21b490e9469342f5fce308613cc8d276ded49b
parent890ff551f72af2369668a9b5c10914f527b37afb (diff)
downloadbuild_soong-b69301ee9696d83a75f88ad38d6e27cc6f14b76a.tar.gz
build_soong-b69301ee9696d83a75f88ad38d6e27cc6f14b76a.tar.bz2
build_soong-b69301ee9696d83a75f88ad38d6e27cc6f14b76a.zip
Sort compiled resources by output path
Soong was keeping the compiled resources in the same order as the input resources, which are sorted lexicographically. Converting the path names in pathsToAapt2Paths results in a list that is no longer lexicographically sorted. Make sorts the inputs to aapt2 link by compiled resource name, so do the same in Soong. Bug: 69917341 Test: no change to framework-res.apk when converting to Soong Change-Id: I29e8339b9969b0d323d469dac140c7e172b7ebfa
-rw-r--r--java/aapt2.go4
-rw-r--r--java/app_test.go7
2 files changed, 10 insertions, 1 deletions
diff --git a/java/aapt2.go b/java/aapt2.go
index cebd6d15..84e3729f 100644
--- a/java/aapt2.go
+++ b/java/aapt2.go
@@ -16,6 +16,7 @@ package java
import (
"path/filepath"
+ "sort"
"strconv"
"strings"
@@ -85,6 +86,9 @@ func aapt2Compile(ctx android.ModuleContext, dir android.Path, paths android.Pat
})
}
+ sort.Slice(ret, func(i, j int) bool {
+ return ret[i].String() < ret[j].String()
+ })
return ret
}
diff --git a/java/app_test.go b/java/app_test.go
index 35230d45..73ac3f78 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -17,6 +17,7 @@ package java
import (
"android/soong/android"
"reflect"
+ "sort"
"testing"
)
@@ -79,7 +80,11 @@ func TestApp(t *testing.T) {
t.Errorf("expected aapt2 compile inputs expected:\n %#v\n got:\n %#v",
resourceFiles, compile.Inputs.Strings())
}
- expectedLinkImplicits = append(expectedLinkImplicits, compile.Outputs.Strings()...)
+
+ compiledResourceOutputs := compile.Outputs.Strings()
+ sort.Strings(compiledResourceOutputs)
+
+ expectedLinkImplicits = append(expectedLinkImplicits, compiledResourceOutputs...)
list := foo.Output("aapt2/res.list")
expectedLinkImplicits = append(expectedLinkImplicits, list.Output.String())