mirror of
https://gitlab.cern.ch/wotsubo/endcap-sl-software-ri-generator.git
synced 2025-06-29 16:19:26 +09:00
Prepare for release (Refine cli, writing docs)
This commit is contained in:
parent
c4407639a0
commit
a652b40228
9 changed files with 245 additions and 5 deletions
82
README.md
Normal file
82
README.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Endcap SL Software RI Generator
|
||||
|
||||
[日本語版](README-ja.md)
|
||||
|
||||
Generates register interface for mpsoc software from register map in xml format.
|
||||
|
||||
The XML and its schema definition are in [L0 Muon Endcap/Endcap Sl CSR XML](https://gitlab.cern.ch/l0muon-endcap/endcap-sl-csr-xml).
|
||||
The generated code is intended to be used in [MPSoC Software](https://gitlab.cern.ch/wotsubo/mpsoc-software), which provides definition of register traits (`RegisterSpec`) used in the generated code.
|
||||
|
||||
## Usage
|
||||
|
||||
This project provides both binary and library crates.
|
||||
Binary crates can be used from shell, while library crates can be used in other programs.
|
||||
|
||||
### Setting up building environment
|
||||
|
||||
This code is written in [Rust](https://www.rust-lang.org), so you need to install [rustup](https://www.rust-lang.org/tools/install).
|
||||
You can use either officially provided `curl` script, or system package manager to install.
|
||||
You can check the installation by executing `cargo` in the terminal.
|
||||
|
||||
Note that `cargo` is available on lxplus, so you might be able to use that (it is not the latest version though).
|
||||
|
||||
### Binary crate usage
|
||||
|
||||
Execute
|
||||
|
||||
```bash
|
||||
cargo build --bins --release
|
||||
```
|
||||
|
||||
to build.
|
||||
`--release` is optional(this is a compiler optimization config).
|
||||
|
||||
Execute the binary generated in `target/release/`, or run with `cargo run -- <XML> <OUT>`.
|
||||
|
||||
See the `--help` for more information.
|
||||
|
||||
### Library crate usage
|
||||
|
||||
See the doc, which is available with
|
||||
|
||||
```bash
|
||||
cargo doc --open
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
See the doc with private items with
|
||||
|
||||
```bash
|
||||
cargo doc --document-private-items --open
|
||||
```
|
||||
|
||||
You can execute test, format and lint with:
|
||||
|
||||
```bash
|
||||
$ cargo test # test
|
||||
$ cargo fmt # format
|
||||
$ cargo clippy # lint (run `rustup component add clippy` to install)
|
||||
```
|
||||
|
||||
### rust-analyzer
|
||||
|
||||
It is __heavily recommended__ to use [rust-analyzer](https://rust-analyzer.github.io) in development.
|
||||
It is not only essential for displaying inferred types and completion, but also it can execute formatter and clippy.
|
||||
|
||||
### About CI
|
||||
|
||||
In the CI, test for build, format and clippy run.
|
||||
Please format your code and check clippy before pushing.
|
||||
|
||||
### About Rust
|
||||
|
||||
You can learn Rust with the following webpage.
|
||||
|
||||
- [The Book](https://doc.rust-lang.org/book/)
|
||||
|
||||
Or in terminal, execute
|
||||
```bash
|
||||
rustup doc
|
||||
```
|
||||
It has a lot of links to helpful documents (personally, I appreciate "The Book", std library doc and "Rust By Example").
|
Loading…
Add table
Add a link
Reference in a new issue