Rig Build System
Zero Magic, Pure Power
Do anything you need with a general-purpose programming language:
// See the tutorial for how this code works!
c_files: []str = find_src_ext("src", "c");
o_files: []str =
foreach c_file: c_files
{
o_file: str = c_file +~ ".o";
target o_file: c_file
{
if config_bool["clang"]
{
$ gcc -c -o @(tgt) @(file_dep);
}
else
{
$ clang -c -o @(tgt) @(file_dep);
}
}
o_file;
};
target "exec": o_files
{
if config_bool["clang"]
{
$ gcc -o @(tgt) @(file_dep);
}
else
{
$ clang -o @(tgt) @(file_dep);
}
}
target @all: "exec";
Run builds from the build directory or the source directory:
Set up one-step release builds for users:
Coming Soon!
Incremental Builds
First-Class Cross-Compilation
Even for multiple platforms at once.
Dynamic Targets
- Add a file, Rig detects it.
- Build for any language, using source dependencies.
Presets
Can’t remember a useful but complex build config? Save it as a preset!
Standard Library
Want your magic back? Rig will include an opt-in standard library.
Coming Eventually!
Too Much Power? Restrict the Language!
Curses-Like Configuration TUI
Rig/Yao Debugger
Multi-Project Builds for Monorepos
Sandboxing
Building Distributed Systems
Dynamic Build Permissions with Capabilities
Package Management