From 973d31c75711b36a9e5300a5daad3258f163a34b Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Wed, 10 Feb 2021 14:52:42 +0000 Subject: [PATCH] Fix api_fingerprint.txt generation Use the generated txt files as input instead of globbing for now non-existent files. Also add the system server api txt to the hash. Bug: 179807354 Test: verify out/soong/api_fingerprint.txt changes now Test: verify the command in the ninja file looks ok: grep api_fingerprint out/soong/build.ninja Change-Id: I7a49ca134eb93b22537a4f3054285eb15f8c4256 --- java/sdk.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/java/sdk.go b/java/sdk.go index a68abfb51..e82bd9c7b 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -640,14 +640,26 @@ func createAPIFingerprint(ctx android.SingletonContext) { if ctx.Config().PlatformSdkCodename() == "REL" { cmd.Text("echo REL >").Output(out) - } else if !ctx.Config().AlwaysUsePrebuiltSdks() { - in, err := ctx.GlobWithDeps("frameworks/base/api/*current.txt", nil) - if err != nil { - ctx.Errorf("error globbing API files: %s", err) + } else if ctx.Config().FrameworksBaseDirExists(ctx) && !ctx.Config().AlwaysUsePrebuiltSdks() { + cmd.Text("cat") + apiTxtFileModules := []string{ + "frameworks-base-api-current.txt", + "frameworks-base-api-system-current.txt", + "frameworks-base-api-module-lib-current.txt", } - - cmd.Text("cat"). - Inputs(android.PathsForSource(ctx, in)). + count := 0 + ctx.VisitAllModules(func(module android.Module) { + name := ctx.ModuleName(module) + if android.InList(name, apiTxtFileModules) { + cmd.Inputs(android.OutputFilesForModule(ctx, module, "")) + count++ + } + }) + if count != len(apiTxtFileModules) { + ctx.Errorf("Could not find all the expected API modules %v, found %d\n", apiTxtFileModules, count) + return + } + cmd.Input(android.PathForSource(ctx, "frameworks/base/services/api/current.txt")). Text("| md5sum | cut -d' ' -f1 >"). Output(out) } else {