mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 23:19:36 +00:00
218 lines
4.3 KiB
Markdown
218 lines
4.3 KiB
Markdown
<div align="center">
|
|
|
|
# DCR — Dexoron Cargo Realization
|
|
|
|
**A Cargo-style build tool for C/C++ projects**
|
|
|
|
[](https://github.com/dexoron/dcr/actions/workflows/ci.yml)
|
|
[](https://github.com/dexoron/dcr/releases/latest)
|
|
[](https://github.com/dexoron/dcr/releases)
|
|
<br/>
|
|
[](https://aur.archlinux.org/packages/dcr)
|
|
[](https://crates.io/crates/dcr)
|
|
[](https://github.com/dexoron/homebrew-dexoron)
|
|
<br/>
|
|
[](https://github.com/dexoron/dcr/stargazers)
|
|
[](LICENSE)
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## Why DCR?
|
|
|
|
- **No boilerplate** — one config file, predictable structure
|
|
- **Cargo-like workflow** — `build`, `run`, `clean`, `test`, `add`
|
|
- **Cross-compilation** — full target triple support with short names
|
|
- **IDE integration** — VS Code, CLion, `compile_commands.json` out of the box
|
|
- **Dependencies** — path, git, and registry-based with lock file
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
<table>
|
|
<tr>
|
|
<td><b>Arch Linux (AUR)</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
yay -S dcr
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>macOS/Linux(GNU) (Homebrew)</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
brew tap dexoron/dexoron
|
|
brew install dcr
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Cargo (crates.io)</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
cargo install dcr
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Linux / macOS (script)</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
curl -fsSL https://dcr.dexoron.su/install.sh | bash
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>BSD (script)</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
curl -fsSL https://raw.githubusercontent.com/dexoron/dcr/dev/install_bsd.sh | bash
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Windows (PowerShell)</b></td>
|
|
<td>
|
|
|
|
```powershell
|
|
irm https://dcr.dexoron.su/install.ps1 | iex
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>From source</b></td>
|
|
<td>
|
|
|
|
```sh
|
|
git clone https://github.com/dexoron/dcr.git
|
|
cd dcr && cargo build --release
|
|
ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr
|
|
```
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
```sh
|
|
dcr new hello
|
|
cd hello
|
|
dcr run
|
|
```
|
|
|
|
**Project structure:**
|
|
|
|
```
|
|
hello/
|
|
├── dcr.toml # project config
|
|
└── src/
|
|
└── main.c
|
|
```
|
|
|
|
---
|
|
|
|
## dcr.toml Example
|
|
|
|
```toml
|
|
[package]
|
|
name = "hello"
|
|
version = "0.1.0"
|
|
|
|
[build]
|
|
language = "c"
|
|
standard = "c11"
|
|
compiler = "clang"
|
|
kind = "bin"
|
|
|
|
[dependencies]
|
|
```
|
|
|
|
---
|
|
|
|
## Base Commands
|
|
|
|
| Command | Description |
|
|
|---|---|
|
|
| `dcr new <name>` | Create a new project |
|
|
| `dcr init` | Initialize current directory |
|
|
| `dcr build [--release]` | Build the project |
|
|
| `dcr run [--release]` | Build and run |
|
|
| `dcr clean` | Remove build artifacts |
|
|
|
|
other in [docs/](docs/) and `dcr --help`
|
|
|
|
---
|
|
|
|
## Platforms
|
|
|
|
<div align="center">
|
|
|
|
| OS | x86_64 | aarch64 | armv7 | i686 | riscv64 | GNU | Musl | MSVC | MinGW |
|
|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
| Linux | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
|
|
| macOS | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
| Windows | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
|
| FreeBSD | ✅ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| OpenBSD | ✅ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| NetBSD | ✅ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
|
|
✅ officially supported · ⚠️ community / best-effort · ❌ not supported
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
Full docs at **[dcr.dexoron.su](https://dcr.dexoron.su)** or in the [`docs/`](docs/) directory.
|
|
|
|
---
|
|
|
|
## Contributors
|
|
|
|
<div align="center">
|
|
|
|
| | Name | Role | GitHub |
|
|
|:---:|---|---|---|
|
|
| 👤 | Dexoron (Bezotechestvo Vladimir) | Maintainer, Creator | [@dexoron](https://github.com/dexoron) |
|
|
| 👤 | Kai | Maintainer | [@peoplemiau1](https://github.com/peoplemiau1) |
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## Contributing
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md). Before a PR:
|
|
|
|
```sh
|
|
cargo fmt --all
|
|
cargo clippy --all-targets --all-features -- -D warnings
|
|
cargo test
|
|
```
|
|
|
|
---
|
|
|
|
<div align="center">
|
|
|
|
GPL-3.0 — see [LICENSE](LICENSE)<br/>
|
|
Made with ❤️ by [Dexoron](https://github.com/dexoron) and contributors.
|
|
|
|
</div> |