From 7f48eeff590ca1675bac3286ac83e1e2a516a0a2 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Thu, 3 Dec 2020 11:15:58 +0000 Subject: [PATCH] Improve error messages for missing dependencies Adds some additional information into the paths that are created when modules are missing in Soong but SOONG_ALLOW_MISSING_DEPENDENCIES=true. Test: try and build platform against art prebuilts Bug: 171061220 Change-Id: Ifbcc0af5bdbd15409758a3b6f216cf9b3b5dba31 --- java/dexpreopt_bootjars.go | 4 ++-- java/hiddenapi_singleton.go | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go index f16ddf1df..da7f291a3 100644 --- a/java/dexpreopt_bootjars.go +++ b/java/dexpreopt_bootjars.go @@ -506,7 +506,7 @@ func buildBootImage(ctx android.SingletonContext, image *bootImageConfig) *bootI m := image.modules.Jar(i) if ctx.Config().AllowMissingDependencies() { missingDeps = append(missingDeps, m) - bootDexJars[i] = android.PathForOutput(ctx, "missing") + bootDexJars[i] = android.PathForOutput(ctx, "missing/module", m, "from/apex", image.modules.Apex(i)) } else { ctx.Errorf("failed to find a dex jar path for module '%s'"+ ", note that some jars may be filtered out by module constraints", m) @@ -779,7 +779,7 @@ func bootFrameworkProfileRule(ctx android.SingletonContext, image *bootImageConf bootFrameworkProfile = path.Path() } else { missingDeps = append(missingDeps, defaultProfile) - bootFrameworkProfile = android.PathForOutput(ctx, "missing") + bootFrameworkProfile = android.PathForOutput(ctx, "missing", defaultProfile) } profile := image.dir.Join(ctx, "boot.bprof") diff --git a/java/hiddenapi_singleton.go b/java/hiddenapi_singleton.go index ce8410ed4..419dc3424 100644 --- a/java/hiddenapi_singleton.go +++ b/java/hiddenapi_singleton.go @@ -177,12 +177,13 @@ func stubFlagsRule(ctx android.SingletonContext) { for moduleList, pathList := range moduleListToPathList { for i := range pathList { if pathList[i] == nil { - pathList[i] = android.PathForOutput(ctx, "missing") + moduleName := (*moduleList)[i] + pathList[i] = android.PathForOutput(ctx, "missing/module", moduleName) if ctx.Config().AllowMissingDependencies() { - missingDeps = append(missingDeps, (*moduleList)[i]) + missingDeps = append(missingDeps, moduleName) } else { ctx.Errorf("failed to find dex jar path for module %q", - (*moduleList)[i]) + moduleName) } } }