Handle missing dependencies in mixed builds
Bazel will fail on queries with missing dependencies. Instead, we check for missing dependencies in mixed builds and we fall back to Soong when we are aware of missing dependencies in a module. Test: go test soong tests Change-Id: I4f83752704970d8b43650d5b55ff35799c7bc625
This commit is contained in:
@@ -354,6 +354,10 @@ type BaseModuleContext interface {
|
||||
|
||||
AddMissingDependencies(missingDeps []string)
|
||||
|
||||
// getMissingDependencies returns the list of missing dependencies.
|
||||
// Calling this function prevents adding new dependencies.
|
||||
getMissingDependencies() []string
|
||||
|
||||
// AddUnconvertedBp2buildDep stores module name of a direct dependency that was not converted via bp2build
|
||||
AddUnconvertedBp2buildDep(dep string)
|
||||
|
||||
@@ -939,7 +943,8 @@ type commonProperties struct {
|
||||
|
||||
NamespaceExportedToMake bool `blueprint:"mutated"`
|
||||
|
||||
MissingDeps []string `blueprint:"mutated"`
|
||||
MissingDeps []string `blueprint:"mutated"`
|
||||
CheckedMissingDeps bool `blueprint:"mutated"`
|
||||
|
||||
// Name and variant strings stored by mutators to enable Module.String()
|
||||
DebugName string `blueprint:"mutated"`
|
||||
@@ -2862,6 +2867,20 @@ func (b *baseModuleContext) AddMissingDependencies(deps []string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) checkedMissingDeps() bool {
|
||||
return b.Module().base().commonProperties.CheckedMissingDeps
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) getMissingDependencies() []string {
|
||||
checked := &b.Module().base().commonProperties.CheckedMissingDeps
|
||||
*checked = true
|
||||
var missingDeps []string
|
||||
missingDeps = append(missingDeps, b.Module().base().commonProperties.MissingDeps...)
|
||||
missingDeps = append(missingDeps, b.bp.EarlyGetMissingDependencies()...)
|
||||
missingDeps = FirstUniqueStrings(missingDeps)
|
||||
return missingDeps
|
||||
}
|
||||
|
||||
type AllowDisabledModuleDependency interface {
|
||||
blueprint.DependencyTag
|
||||
AllowDisabledModuleDependency(target Module) bool
|
||||
|
Reference in New Issue
Block a user