Skip to content

feat: read project model from FuseSoC CAPI2 .core files - #341

Open
hongjr03 wants to merge 16 commits into
masterfrom
feat/fusesoc-core-loader
Open

feat: read project model from FuseSoC CAPI2 .core files#341
hongjr03 wants to merge 16 commits into
masterfrom
feat/fusesoc-core-loader

Conversation

@hongjr03

Copy link
Copy Markdown
Member

Add a read-only Rust loader for FuseSoC CAPI2 .core files and wire it into Vide's project model. A new crates/fusesoc-model crate parses .core files (preamble stripping, typed serde model with deny_unknown_fields, CAPI2 conditional expressions, *_append normalization, YAML inheritance merge, VLNV parsing, local dependency resolution with cycle detection, and target/fileset expansion into a flat ResolvedProject). The official CAPI2 JSON schema is vendored for reference. Unsupported features (generators, hooks, non-local providers) produce explicit diagnostics rather than being silently ignored. project-model gains ProjectManifest::FuseSocCore / FuseSocCoreDir variants; Workspace::from_fusesoc_core and friends load the resolved project into the existing Workspace / CompilationProfile pipeline. LSP status reporting, qihe, and file watchers are updated accordingly.

Discovery follows a clear precedence: vide.toml with a new [fusesoc] section (explicit core + target + flags) takes priority; otherwise a single .core file is auto-discovered; multiple .core files load as FuseSocCoreDir with auto root-core selection; vide.toml without [fusesoc] keeps the existing sources/libraries behavior. Non-default targets are now reachable via target = "sim" in the [fusesoc] section. 73 tests pass (37 fusesoc-model + 36 project-model).

Closes #337

@github-actions

Copy link
Copy Markdown

Docs preview: https://vide.pascal-lab.net/preview/pr-341/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: read project model from FuseSoC core

1 participant