8. criticalup.toml

CriticalUp’s per-project configuration resides in a criticalup.toml manifest that is similar to a rust-toolchain.toml file (documentation).

A typical criticalup.toml manifest looks like this:

manifest-version = 1

[products.ferrocene]
release = "stable-24.05.0"
packages = [
    "cargo-${rustc-host}",
    "rustc-${rustc-host}",
    "rust-std-${rustc-host}",
    "llvm-tools-${rustc-host}",
    "rust-src"
]

This manifest will install everything the average developer might want for a Ferrocene based project.

8.1. Manifest Settings

8.1.1. manifest-version

The manifest-version specifies which version of the manifest format should be used.

Currently, only 1 is supported.

manifest-version = 1

8.1.2. products

A map of product entries, as defined in ‘Product Settings’ below.

Note

Currently CriticalUp only supports one product entry, this is typically named ferrocene.

This will change in the future.

[products.ferrocene]
release = "stable-24.05.0"
packages = [
    "rustc-${rustc-host}",
    "rust-std-aarch64-unknown-none"
]

8.2. Product Settings

8.2.1. release

The desired release of the product, releases are listed on the release channels page.

[products.ferrocene]
release = "stable-24.05.0"
# ...

8.2.2. packages

A set of package names as listed in the release page, for example the stable-24.05.0 release.

Each supported Ferrocene target lists required packages in the on its page under “Compilation Targets” in the Ferrocene User Manual of the release. For example, the X86-64 Linux (glibc) target of the rolling release.

[products.ferrocene]
# ...
packages = [
    "rustc-${rustc-host}",
    "rust-std-aarch64-unknown-none"
]

If ${rustc-host} is present within a package name it is replaced with the full host triple of the build host.