diff options
author | 2020-08-05 09:29:23 +0200 | |
---|---|---|
committer | 2020-08-06 15:17:46 +0200 | |
commit | 83ee52f4cdb082c64d55930299eb16145cd10287 (patch) | |
tree | 4e6316f4dc5f972f9f59d2e39d0c5e9bee1a40b1 /rust/project_json.go | |
parent | 2f628baeaeb5e4c353df53040cc161b398a2ce1d (diff) |
rust: validate existence of library source
While rust_bindgen modules may be interpreted as libraries, they do not
have a reference to the generated source until bindgen has been
executed. For now, ignore these modules.
Update the unit tests to cover the rust_bindgen case.
Test: SOONG_GEN_RUST_PROJECT=1 m nothing
Bug: 162881856
Change-Id: I329d0fe3d94b77d395c3684f55ab01544ff7c18f
Diffstat (limited to 'rust/project_json.go')
-rw-r--r-- | rust/project_json.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rust/project_json.go b/rust/project_json.go index 5c3d785d6..831047938 100644 --- a/rust/project_json.go +++ b/rust/project_json.go @@ -75,7 +75,6 @@ func mergeDependencies(ctx android.SingletonContext, project *rustProjectJson, knownCrates map[string]crateInfo, module android.Module, crate *rustProjectCrate, deps map[string]int) { - //TODO(tweek): The stdlib dependencies do not appear here. We need to manually add them. ctx.VisitDirectDeps(module, func(child android.Module) { childId, childCrateName, ok := appendLibraryAndDeps(ctx, project, knownCrates, child) if !ok { @@ -116,8 +115,11 @@ func appendLibraryAndDeps(ctx android.SingletonContext, project *rustProjectJson return cInfo.ID, crateName, true } crate := rustProjectCrate{Deps: make([]rustProjectDep, 0), Cfgs: make([]string, 0)} - src := rustLib.baseCompiler.Properties.Srcs[0] - crate.RootModule = path.Join(ctx.ModuleDir(rModule), src) + srcs := rustLib.baseCompiler.Properties.Srcs + if len(srcs) == 0 { + return 0, "", false + } + crate.RootModule = path.Join(ctx.ModuleDir(rModule), srcs[0]) crate.Edition = rustLib.baseCompiler.edition() deps := make(map[string]int) |