2023-01-13 10:34:43 -06:00
|
|
|
The build system of cg_clif.
|
|
|
|
|
|
|
|
USAGE:
|
2023-02-15 12:23:11 -06:00
|
|
|
./y.sh prepare [--out-dir DIR] [--download-dir DIR]
|
|
|
|
./y.sh build [--debug] [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen]
|
|
|
|
./y.sh test [--debug] [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen]
|
|
|
|
./y.sh abi-cafe [--debug] [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen]
|
|
|
|
./y.sh bench [--debug] [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen]
|
2023-01-13 10:34:43 -06:00
|
|
|
|
|
|
|
OPTIONS:
|
|
|
|
--debug
|
|
|
|
Build cg_clif and the standard library in debug mode rather than release mode.
|
|
|
|
Warning: An unoptimized cg_clif is very slow.
|
|
|
|
|
|
|
|
--sysroot none|clif|llvm
|
|
|
|
Which sysroot libraries to use:
|
|
|
|
`none` will not include any standard library in the sysroot.
|
|
|
|
`clif` will build the standard library using Cranelift.
|
|
|
|
`llvm` will use the pre-compiled standard library of rustc which is compiled with LLVM.
|
|
|
|
|
|
|
|
--out-dir DIR
|
|
|
|
Specify the directory in which the download, build and dist directories are stored.
|
|
|
|
By default this is the working directory.
|
|
|
|
|
2023-02-13 04:38:25 -06:00
|
|
|
--download-dir DIR
|
|
|
|
Specify the directory in which the download directory is stored. Overrides --out-dir.
|
|
|
|
|
2023-01-13 10:34:43 -06:00
|
|
|
--no-unstable-features
|
|
|
|
Some features are not yet ready for production usage. This option will disable these
|
|
|
|
features. This includes the JIT mode and inline assembly support.
|
|
|
|
|
2023-02-12 08:16:48 -06:00
|
|
|
--frozen
|
|
|
|
Require Cargo.lock and cache are up to date
|
|
|
|
|
2023-02-15 13:32:58 -06:00
|
|
|
--use-backend NAME
|
|
|
|
Use the existing Cranelift (or other) backend of the rustc with which we built.
|
|
|
|
Warning: This is meant for use in rust's CI only!
|
|
|
|
|
2023-01-13 10:34:43 -06:00
|
|
|
REQUIREMENTS:
|
2023-02-13 04:11:45 -06:00
|
|
|
* Rustup: By default rustup is used to install the right nightly version. If you don't want to
|
|
|
|
use rustup, you can manually install the nightly version indicated by rust-toolchain.toml and
|
|
|
|
point the CARGO, RUSTC and RUSTDOC env vars to the right executables.
|
2023-02-15 12:23:11 -06:00
|
|
|
* Git: `./y.sh prepare` uses git for applying patches and on Windows for downloading test repos.
|
|
|
|
* Curl and tar (non-Windows only): Used by `./y.sh prepare` to download a single commit for
|
2023-01-13 10:34:43 -06:00
|
|
|
repos. Git will be used to clone the whole repo when using Windows.
|
2023-02-15 12:23:11 -06:00
|
|
|
* [Hyperfine](https://github.com/sharkdp/hyperfine/): Used for benchmarking with `./y.sh bench`.
|