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

Commit 172f58b6 authored by Anton Hansson's avatar Anton Hansson Committed by Gerrit Code Review
Browse files

Merge "Minor cleanup in prebuilt_apis"

parents 27878ca1 370fd0b0
Loading
Loading
Loading
Loading
+19 −20
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
package java

import (
	"sort"
	"strconv"
	"strings"

	"github.com/google/blueprint/proptools"
@@ -175,37 +175,36 @@ func prebuiltApiFiles(mctx android.LoadHookContext, p *prebuiltApis) {
	type latestApiInfo struct {
		module  string
		scope   string
		apiver string
		version int
		path    string
	}
	m := make(map[string]latestApiInfo)

	// Create filegroups for all (<module>, <scope, <version>) triplets,
	// and a "latest" filegroup variant for each (<module>, <scope>) pair
	m := make(map[string]latestApiInfo)
	for _, f := range files {
		// create a filegroup for each api txt file
		localPath := strings.TrimPrefix(f, mydir)
		module, apiver, scope := parseApiFilePath(mctx, localPath)
		createFilegroup(mctx, module, scope, apiver, localPath)

		// find the latest apiver
		version, err := strconv.Atoi(apiver)
		if err != nil {
			mctx.ModuleErrorf("Found finalized API files in non-numeric dir %v", apiver)
			return
		}

		key := module + "." + scope
		info, ok := m[key]
		if !ok {
			m[key] = latestApiInfo{module, scope, apiver, localPath}
		} else if len(apiver) > len(info.apiver) || (len(apiver) == len(info.apiver) &&
			strings.Compare(apiver, info.apiver) > 0) {
			info.apiver = apiver
			m[key] = latestApiInfo{module, scope, version, localPath}
		} else if version > info.version {
			info.version = version
			info.path = localPath
			m[key] = info
		}
	}
	// create filegroups for the latest version of (<module>, <scope>) pairs
	// sort the keys in order to make build.ninja stable
	keys := make([]string, 0, len(m))
	for k := range m {
		keys = append(keys, k)
	}
	sort.Strings(keys)
	for _, k := range keys {
	// Sort the keys in order to make build.ninja stable
	for _, k := range android.SortedStringKeys(m) {
		info := m[k]
		createFilegroup(mctx, info.module, info.scope, "latest", info.path)
	}
+5 −2
Original line number Diff line number Diff line
@@ -86,10 +86,13 @@ func prebuiltApisFilesForLibs(apiLevels []string, sdkLibs []string) map[string][
		for _, lib := range sdkLibs {
			for _, scope := range []string{"public", "system", "module-lib", "system-server", "test"} {
				fs[fmt.Sprintf("prebuilts/sdk/%s/%s/%s.jar", level, scope, lib)] = nil
				// No finalized API files for "current"
				if level != "current" {
					fs[fmt.Sprintf("prebuilts/sdk/%s/%s/api/%s.txt", level, scope, lib)] = nil
					fs[fmt.Sprintf("prebuilts/sdk/%s/%s/api/%s-removed.txt", level, scope, lib)] = nil
				}
			}
		}
		fs[fmt.Sprintf("prebuilts/sdk/%s/public/framework.aidl", level)] = nil
	}
	return fs