Ignore variant dependencies in rust-project.json
Source-generated library modules will have a dependency on the source variant. This creates a cycle in the dependency graph which triggers a warning from rust-analyzer. Ignore this type of dependency. Test: m nothing Change-Id: I13365093ebb88b00f6a72734b01114ec3e9a320e
This commit is contained in:
parent
b26070efef
commit
3c5905b0cb
2 changed files with 20 additions and 0 deletions
|
@ -109,6 +109,10 @@ func (singleton *projectGeneratorSingleton) mergeDependencies(ctx android.Single
|
|||
if !ok {
|
||||
return
|
||||
}
|
||||
// Skip intra-module dependencies (i.e., generated-source library depending on the source variant).
|
||||
if module.Name() == child.Name() {
|
||||
return
|
||||
}
|
||||
if _, ok = deps[ctx.ModuleName(child)]; ok {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -131,6 +131,22 @@ func TestProjectJsonBindGen(t *testing.T) {
|
|||
t.Errorf("The source path for libbindings2 does not contain the BuildOs, got %v; want %v",
|
||||
rootModule, android.BuildOs.String())
|
||||
}
|
||||
// Check that libbindings1 does not depend on itself.
|
||||
if strings.Contains(rootModule, "libbindings1") {
|
||||
deps, ok := crate["deps"].([]interface{})
|
||||
if !ok {
|
||||
t.Errorf("Unexpected format for deps: %v", crate["deps"])
|
||||
}
|
||||
for _, dep := range deps {
|
||||
d, ok := dep.(map[string]interface{})
|
||||
if !ok {
|
||||
t.Errorf("Unexpected format for dep: %v", dep)
|
||||
}
|
||||
if d["name"] == "bindings1" {
|
||||
t.Errorf("libbindings1 depends on itself")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue