1 unstable release

0.1.0 Dec 9, 2019

#668 in Operating systems

Download history 103/week @ 2024-05-20 38/week @ 2024-05-27 2/week @ 2024-06-03

143 downloads per month

MPL-2.0 license

27KB
563 lines

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

Dependencies

~1.6–2.4MB
~49K SLoC