press

Crates.iopress
lib.rspress
version0.1.0
sourcesrc
created_at2024-05-26 06:51:32.534472
updated_at2024-05-26 06:51:32.534472
descriptionSilicon package manager
homepage
repositoryhttps://codeberg.org/jwnrt/root-of-rust
max_upload_size
id1252377
size30,059
James Wainwright (jwnrt)

documentation

README

Press

WIP Silicon package manager.

Usage

Press can be built with cargo build. See press help for possible commands.

Package manifest

Packages are defined with manifests named Press.toml.

The format of a manifest is:

[package]
name = "my-package"
authors = ["John Doe", "Jane Doe"]
description = "My package"

# Dependencies on other packages at relative paths.
[dependencies]
some-package = { path = "../some-package" }
another-package = { path = "../another-package" }

# Sets of source files associated with the package.

[[sources]]
tags = ["waiver", "verilator"]
files = ["lint/my_package.vlt"]

[[sources]]
tags = ["rtl"]
files = ["rtl/my_package.sv"]

[[sources]]
tags = ["rtl", "xilinx"]
files = ["rtl/my_package_xilinx.sv"]

Listing files

Press can print a list of all files for a package and its dependencies using:

press list

These files can be filtered using the --tags flag which takes a Boolean expression as its value:

$ press list --tags 'waiver && verilator'
/path/to/my-package/lint/my_package.vlt

$ press list --tags 'rtl'
/path/to/some-package/rtl/some_package.sv
/path/to/another-package/rtl/another_package_xilinx.sv
/path/to/my-package/rtl/my_package.sv
/path/to/my-package/rtl/my_package_xilinx.sv

$ press list --tags 'rtl && !xilinx'
/path/to/some-package/rtl/some_package.sv
/path/to/my-package/rtl/my_package.sv
Commit count: 0

cargo fmt