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
This commit is contained in:
Paul Duffin 2020-12-03 11:15:58 +00:00
parent 06e7b6d906
commit 7f48eeff59
2 changed files with 6 additions and 5 deletions

View File

@ -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")

View File

@ -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)
}
}
}