summaryrefslogtreecommitdiff
path: root/rust/project_json.go
diff options
context:
space:
mode:
author Seth Moore <sethmo@google.com> 2021-10-06 10:45:34 -0700
committer Seth Moore <sethmo@google.com> 2021-10-06 19:39:06 +0000
commitaf96f99d83c8ee0dfc1b880bd7a0a6d443b94627 (patch)
tree77c86ced45676bb2c4a5412ab7be9d9749c8a34e /rust/project_json.go
parentf79f4c319988051f21dfa815f0d8eef3f4aca70b (diff)
Include proc macro crates in rust-project.json
These crates were skipped before, leaving dependencies missing in rust-project.json. Include them and mark them as `"is_proc_macro": true` so that rust-analyzer can process them. Fixes: 202290038 Test: SOONG_GEN_RUST_PROJECT=1 m nothing Change-Id: Ia80e6f5e2f56a76608ba057075600e6b4424281b
Diffstat (limited to 'rust/project_json.go')
-rw-r--r--rust/project_json.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/rust/project_json.go b/rust/project_json.go
index faa7db5f7..ae48312b5 100644
--- a/rust/project_json.go
+++ b/rust/project_json.go
@@ -51,6 +51,7 @@ type rustProjectCrate struct {
Deps []rustProjectDep `json:"deps"`
Cfg []string `json:"cfg"`
Env map[string]string `json:"env"`
+ ProcMacro bool `json:"is_proc_macro"`
}
type rustProjectJson struct {
@@ -208,6 +209,8 @@ func isModuleSupported(ctx android.SingletonContext, module android.Module) (*Mo
comp = c.baseCompiler
case *testDecorator:
comp = c.binaryDecorator.baseCompiler
+ case *procMacroDecorator:
+ comp = c.baseCompiler
default:
return nil, nil, false
}
@@ -224,6 +227,8 @@ func (singleton *projectGeneratorSingleton) addCrate(ctx android.SingletonContex
return 0, false
}
+ _, procMacro := rModule.compiler.(*procMacroDecorator)
+
crate := rustProjectCrate{
DisplayName: rModule.Name(),
RootModule: rootModule,
@@ -231,6 +236,7 @@ func (singleton *projectGeneratorSingleton) addCrate(ctx android.SingletonContex
Deps: make([]rustProjectDep, 0),
Cfg: make([]string, 0),
Env: make(map[string]string),
+ ProcMacro: procMacro,
}
if comp.CargoOutDir().Valid() {