Compatibility Matrix
rninja compatibility with Ninja and build systems.
Ninja Compatibility
Command-Line Options
| Option |
Ninja |
rninja |
Notes |
-C DIR |
✓ |
✓ |
Change directory |
-f FILE |
✓ |
✓ |
Build file |
-j N |
✓ |
✓ |
Parallel jobs |
-k N |
✓ |
✓ |
Keep going |
-l N |
✓ |
✓ |
Load limit |
-n |
✓ |
✓ |
Dry run |
-v |
✓ |
✓ |
Verbose |
-d MODE |
✓ |
✓ |
Debug mode |
-t TOOL |
✓ |
✓ |
Subtools |
-w FLAG |
✓ |
✓ |
Warnings |
| Tool |
Ninja |
rninja |
Notes |
clean |
✓ |
✓ |
Remove outputs |
cleandead |
✓ |
✓ |
Remove stale outputs |
compdb |
✓ |
✓ |
Compilation database |
deps |
✓ |
✓ |
Show dependencies |
graph |
✓ |
✓ |
GraphViz output |
query |
✓ |
✓ |
Target info |
targets |
✓ |
✓ |
List targets |
commands |
✓ |
✓ |
Show commands |
recompact |
✓ |
✓ |
Compact log |
restat |
✓ |
✓ |
Update timestamps |
rules |
✓ |
✓ |
List rules |
cache-* |
✗ |
✓ |
rninja extension |
daemon-* |
✗ |
✓ |
rninja extension |
| File |
Ninja |
rninja |
Notes |
build.ninja |
✓ |
✓ |
Identical |
.ninja_log |
✓ |
✓ |
Compatible |
.ninja_deps |
✓ |
✓ |
Compatible |
compile_commands.json |
✓ |
✓ |
Standard format |
Exit Codes
| Code |
Ninja |
rninja |
Meaning |
| 0 |
✓ |
✓ |
Success |
| 1 |
✓ |
✓ |
Build failed |
| 2 |
✓ |
✓ |
Invalid arguments |
Debug Modes
| Mode |
Ninja |
rninja |
stats |
✓ |
✓ |
explain |
✓ |
✓ |
keepdepfile |
✓ |
✓ |
keeprsp |
✓ |
✓ |
Build System Compatibility
CMake
| Feature |
Support |
Notes |
| Ninja generator |
✓ |
cmake -G Ninja |
| Multi-config |
✓ |
Via ninja-multi |
| compile_commands.json |
✓ |
Standard format |
| Custom commands |
✓ |
Full support |
cmake -G Ninja -B build
rninja -C build
Meson
| Feature |
Support |
Notes |
| Ninja backend |
✓ |
Default backend |
| Subprojects |
✓ |
Full support |
| compile_commands.json |
✓ |
Auto-generated |
| Cross-compilation |
✓ |
Full support |
meson setup build
rninja -C build
GN (Generate Ninja)
| Feature |
Support |
Notes |
| Build files |
✓ |
Full support |
| Toolchains |
✓ |
All supported |
| Actions |
✓ |
Full support |
gn gen out/Default
rninja -C out/Default
Bazel
| Feature |
Support |
Notes |
| Direct |
✗ |
Uses own executor |
| Via rules_foreign_cc |
✓ |
CMake/Ninja builds |
Buck2
| Feature |
Support |
Notes |
| Direct |
✗ |
Uses own executor |
Operating Systems
| Platform |
Support |
Notes |
| Linux (x86_64) |
✓ |
Full support |
| Linux (aarch64) |
✓ |
Full support |
| macOS (x86_64) |
✓ |
Full support |
| macOS (Apple Silicon) |
✓ |
Full support |
| Windows (x86_64) |
✓ |
Full support |
| FreeBSD |
✓ |
Full support |
| Platform |
Support |
Notes |
| GitHub Actions |
✓ |
Full support, examples provided |
| GitLab CI |
✓ |
Full support, examples provided |
| Jenkins |
✓ |
Full support |
| CircleCI |
✓ |
Full support |
| Azure Pipelines |
✓ |
Full support |
| Buildkite |
✓ |
Full support |
| Platform |
Support |
Notes |
| Docker |
✓ |
Official images available |
| Podman |
✓ |
Compatible with Docker images |
| Kubernetes |
✓ |
Deployment guides provided |
Compiler Compatibility
| Compiler |
Format |
Support |
| GCC |
GCC (deps = gcc) |
✓ |
| Clang |
GCC (deps = gcc) |
✓ |
| MSVC |
MSVC (deps = msvc) |
✓ |
| Intel ICC |
GCC |
✓ |
| Intel ICX |
GCC |
✓ |
Response Files
| Compiler |
Support |
| GCC |
✓ @file |
| Clang |
✓ @file |
| MSVC |
✓ @file |
Known Limitations
Ninja Features
| Feature |
Status |
Notes |
| Pools |
✓ |
Full support |
| Console pool |
✓ |
Full support |
| Phony targets |
✓ |
Full support |
| Default targets |
✓ |
Full support |
| Depfile parsing |
✓ |
All formats |
| Dynamic dependencies |
✓ |
dyndep supported |
Edge Cases
| Scenario |
Ninja |
rninja |
Notes |
| Very long command lines |
✓ |
✓ |
Uses response files |
| Unicode paths |
✓ |
✓ |
UTF-8 support |
| Symlinks |
✓ |
✓ |
Followed correctly |
| Network paths |
✓ |
✓ |
Supported |
Migration Path
Drop-in Replacement
# Create symlink
sudo ln -sf $(which rninja) /usr/local/bin/ninja
# Or alias
alias ninja=rninja
Verification
# Compare behavior
ninja -n -v > ninja.log 2>&1
rninja -n -v > rninja.log 2>&1
diff ninja.log rninja.log
Rollback
# Remove symlink
sudo rm /usr/local/bin/ninja
sudo ln -sf $(which ninja.real) /usr/local/bin/ninja
Version Compatibility
| rninja |
Ninja |
Status |
| 0.1.x |
1.11+ |
Full |
| 0.1.x |
1.10.x |
Full |
| 0.1.x |
1.9.x |
Full |
| 0.1.x |
1.8.x |
Compatible |