Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8faab8a5 authored by Sundong Ahn's avatar Sundong Ahn
Browse files

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
parent dfa4a486
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -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