aboutsummaryrefslogtreecommitdiffstats
path: root/java/prebuilt_apis.go
diff options
context:
space:
mode:
authorSundong Ahn <sundongahn@google.com>2019-02-14 11:49:24 +0900
committerSundong Ahn <sundongahn@google.com>2019-02-14 19:46:34 +0900
commit8faab8a54720cafce85e7dc0c732b1456839b5dc (patch)
tree3489fcb78b32f11304aca3941f0ab67c84bc87d6 /java/prebuilt_apis.go
parentdfa4a486eb0146582fe015ac4466dc39ae0e5f7d (diff)
downloadandroid_build_soong-8faab8a54720cafce85e7dc0c732b1456839b5dc.tar.gz
android_build_soong-8faab8a54720cafce85e7dc0c732b1456839b5dc.tar.bz2
android_build_soong-8faab8a54720cafce85e7dc0c732b1456839b5dc.zip
Get latest api version
The logic of getting latest api version has problem that we don't guarantee $(module_name).latest is latest api txt file. So change this logic to get the latest api txt file. Test: make -j40 Change-Id: Ibbd8475061fc76169a4c94dcf148fece45b9a41d
Diffstat (limited to 'java/prebuilt_apis.go')
-rw-r--r--java/prebuilt_apis.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/java/prebuilt_apis.go b/java/prebuilt_apis.go
index 49cc9311..02b9b455 100644
--- a/java/prebuilt_apis.go
+++ b/java/prebuilt_apis.go
@@ -103,19 +103,25 @@ func createFilegroup(mctx android.TopDownMutatorContext, module string, scope st
mctx.CreateModule(android.ModuleFactoryAdaptor(android.FileGroupFactory), &filegroupProps)
}
-func prebuiltSdkStubs(mctx android.TopDownMutatorContext) {
+func getPrebuiltFiles(mctx android.TopDownMutatorContext, name string) []string {
mydir := mctx.ModuleDir() + "/"
- // <apiver>/<scope>/<module>.jar
var files []string
for _, apiver := range mctx.Module().(*prebuiltApis).properties.Api_dirs {
for _, scope := range []string{"public", "system", "test", "core"} {
- vfiles, err := mctx.GlobWithDeps(mydir+apiver+"/"+scope+"*/*.jar", nil)
+ vfiles, err := mctx.GlobWithDeps(mydir+apiver+"/"+scope+"/"+name, nil)
if err != nil {
- mctx.ModuleErrorf("failed to glob jar files under %q: %s", mydir+apiver+"/"+scope, err)
+ mctx.ModuleErrorf("failed to glob %s files under %q: %s", name, mydir+apiver+"/"+scope, err)
}
files = append(files, vfiles...)
}
}
+ return files
+}
+
+func prebuiltSdkStubs(mctx android.TopDownMutatorContext) {
+ mydir := mctx.ModuleDir() + "/"
+ // <apiver>/<scope>/<module>.jar
+ files := getPrebuiltFiles(mctx, "*.jar")
for _, f := range files {
// create a Import module for each jar file
@@ -128,10 +134,8 @@ func prebuiltSdkStubs(mctx android.TopDownMutatorContext) {
func prebuiltApiFiles(mctx android.TopDownMutatorContext) {
mydir := mctx.ModuleDir() + "/"
// <apiver>/<scope>/api/<module>.txt
- files, err := mctx.GlobWithDeps(mydir+"*/*/api/*.txt", nil)
- if err != nil {
- mctx.ModuleErrorf("failed to glob api txt files under %q: %s", mydir, err)
- }
+ files := getPrebuiltFiles(mctx, "api/*.txt")
+
if len(files) == 0 {
mctx.ModuleErrorf("no api file found under %q", mydir)
}
@@ -161,6 +165,7 @@ func prebuiltApiFiles(mctx android.TopDownMutatorContext) {
strings.Compare(apiver, info.apiver) > 0) {
info.apiver = apiver
info.path = localPath
+ m[key] = info
}
}
// create filegroups for the latest version of (<module>, <scope>) pairs