From c7dd8fecaa1c10062a5430b743ed3b0e4f38d8a5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:20 +0800 Subject: [PATCH 001/200] New translations readme.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/README.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/README.mdx.mdx b/docs-crowdin-export/de-DE/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 93a894e66a5dc385224df8c41b79e38b24e585e8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:21 +0800 Subject: [PATCH 002/200] New translations readme.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/README.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 7ba9d296a1eb8bf5a7714c61283533299a648714 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:22 +0800 Subject: [PATCH 003/200] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/README.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 180f927e85838a921677fc8ef33cc8df4a076319 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:23 +0800 Subject: [PATCH 004/200] New translations readme.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/README.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 966018c1e020293c40f335d88e21b05db708f2e9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:25 +0800 Subject: [PATCH 005/200] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From cd3ef3a7f5fc9fac3701ad42d3d20981bf1aa240 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:26 +0800 Subject: [PATCH 006/200] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From e257afde70766683e5bd45611cb462a4f21f1143 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:27 +0800 Subject: [PATCH 007/200] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From 0af619907a287ac9c51d3572d87484fc6759ac4f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:28 +0800 Subject: [PATCH 008/200] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From 3ca1db4f7c95a00d4d282548db6828b293395324 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:29 +0800 Subject: [PATCH 009/200] New translations build-commands.mdx (German) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 312af437022a25f38efa8b3e99387d6e9bf53887 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:30 +0800 Subject: [PATCH 010/200] New translations build-commands.mdx (Polish) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From e3ec2c198d0e6513dc31bda4e1f64fbff40d2dc0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:32 +0800 Subject: [PATCH 011/200] New translations build-commands.mdx (Russian) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 801a164da9ce27b4d1e0defacf8caf2ab5848f3b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:33 +0800 Subject: [PATCH 012/200] New translations build-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 23149d814948f2ce0bd013ab821049ecd9f631ed Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:34 +0800 Subject: [PATCH 013/200] New translations dependency-commands.mdx (German) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From c2c3a7bd7a74c7d773943ceafbd8af3b7691abfa Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:35 +0800 Subject: [PATCH 014/200] New translations dependency-commands.mdx (Polish) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From 6c6fa8d5d4a782bdff141c0229a82eb40a528052 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:36 +0800 Subject: [PATCH 015/200] New translations dependency-commands.mdx (Russian) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From 1b0ee1402a4bf2a2a0b06cc701f828e44e09b2aa Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:37 +0800 Subject: [PATCH 016/200] New translations dependency-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From dcb8e676f1515839167eb9999df064f8a7c8f132 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:38 +0800 Subject: [PATCH 017/200] New translations gen-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 548808a8d8585e6932b4740d05a7f728a4dc4ac1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:40 +0800 Subject: [PATCH 018/200] New translations gen-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 04fcedc42814d104fb521fd363cb14e895b29f97 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:41 +0800 Subject: [PATCH 019/200] New translations gen-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From b7c9edb35e3b94b1c5ec878913233b7d34e91858 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:42 +0800 Subject: [PATCH 020/200] New translations gen-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 82e10cc75d82a6a8a2d69ae12368fee53aabbf74 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:43 +0800 Subject: [PATCH 021/200] New translations project-commands.mdx (German) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From fd5150f3db5abc8b5bfbd66f3feb195499885145 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:44 +0800 Subject: [PATCH 022/200] New translations project-commands.mdx (Polish) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From d10358bdab5616d7e68c0c2d7090a82a3ad6ef90 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:45 +0800 Subject: [PATCH 023/200] New translations project-commands.mdx (Russian) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From f4124ea2686fc0ba8d39fda7ab2653ac7518bde4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:46 +0800 Subject: [PATCH 024/200] New translations project-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From f5b465446cf2935b029e3a176e0c44dbcc5a7c07 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:48 +0800 Subject: [PATCH 025/200] New translations quality-commands.mdx (German) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From ab0ad5892534cf8eb8f0782adddfdeef7a647be3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:49 +0800 Subject: [PATCH 026/200] New translations quality-commands.mdx (Polish) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From f87112faf07e4853832818ec757ee54bb766a079 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:50 +0800 Subject: [PATCH 027/200] New translations quality-commands.mdx (Russian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From 49d63a1ea1f8b804472f86f03f0f370b5aed2549 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:51 +0800 Subject: [PATCH 028/200] New translations quality-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From 8aa350629c386a3c4a617be19b92ab1d27a31239 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:52 +0800 Subject: [PATCH 029/200] New translations system-commands.mdx (German) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 4c40e74dbb4840a374dba44e040c765506f509a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:54 +0800 Subject: [PATCH 030/200] New translations system-commands.mdx (Polish) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 7e54cb71554c6ffa5500dd81b9d17261e62d32e6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:55 +0800 Subject: [PATCH 031/200] New translations system-commands.mdx (Russian) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 42312e10bb174ad766bdd2b338955a6e09f4dce8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:56 +0800 Subject: [PATCH 032/200] New translations system-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From bc71ee720252387d6129c4d0436cfc549a00bf59 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:57 +0800 Subject: [PATCH 033/200] New translations contributing.mdx (German) [ci skip] --- .../de-DE/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From ce643077b3776531bbee8a40705b95306767bee4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:58 +0800 Subject: [PATCH 034/200] New translations contributing.mdx (Polish) [ci skip] --- .../pl-PL/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 84eb7c0c521444ddf81155d96bb6c8f451f74e30 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:20:59 +0800 Subject: [PATCH 035/200] New translations contributing.mdx (Russian) [ci skip] --- .../ru-RU/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 12f4177a91127b3ef7cca2795c278eea8966e1ca Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:00 +0800 Subject: [PATCH 036/200] New translations contributing.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 1eca47feb50586f6ffb86ba61242684de17f6d41 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:01 +0800 Subject: [PATCH 037/200] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 4e2688d66f4f17a4ba695ff60093ed00357fa8f3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:02 +0800 Subject: [PATCH 038/200] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From fc545c6af97eeed2038ef1921a15c7833e618559 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:04 +0800 Subject: [PATCH 039/200] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 6c1e04103784b1973b55e8a10770b2f9f32e99a2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:05 +0800 Subject: [PATCH 040/200] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 03146c28579c4c0dbbf3a05020b6d1d4cd654849 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:06 +0800 Subject: [PATCH 041/200] New translations first-steps.mdx (German) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 2e895619bfab61ffbb3df28a693a5f39111e52db Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:07 +0800 Subject: [PATCH 042/200] New translations first-steps.mdx (Polish) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 6c326c21d4ce07ea1011a4ea8df591ca37364902 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:08 +0800 Subject: [PATCH 043/200] New translations first-steps.mdx (Russian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 98db98d353fd0567682944f185470f5552302ec5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:09 +0800 Subject: [PATCH 044/200] New translations first-steps.mdx (Ukrainian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From c11c1a83df82ea5134bb8e43418a4f57165be24b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:10 +0800 Subject: [PATCH 045/200] New translations installation.mdx (German) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From a1d2d41fb0f864d9b1921ffbd6c832f46c3266ff Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:12 +0800 Subject: [PATCH 046/200] New translations installation.mdx (Polish) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From a02f302c4820ef757cf804c6adcf4e1b831b43ce Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:13 +0800 Subject: [PATCH 047/200] New translations installation.mdx (Russian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From 813354c5dac45b553b431d2ecde4ae7c1798e48b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:14 +0800 Subject: [PATCH 048/200] New translations installation.mdx (Ukrainian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From 1e6a1ae9c1cab7fdd982c0a20eb5d3e5f776258f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:15 +0800 Subject: [PATCH 049/200] New translations ide-integration.mdx (German) [ci skip] --- .../de-DE/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx b/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 0fecd4c2b7d8579ac44b5b03ece541c7ea9d8a5a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:16 +0800 Subject: [PATCH 050/200] New translations ide-integration.mdx (Polish) [ci skip] --- .../pl-PL/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx b/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From c936c03fbff0e2052d74adb57894a78994819818 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:17 +0800 Subject: [PATCH 051/200] New translations ide-integration.mdx (Russian) [ci skip] --- .../ru-RU/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 82a2b38132178e01c9c271573aed7fa2e022ee23 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:19 +0800 Subject: [PATCH 052/200] New translations ide-integration.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx b/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 72654896c0a11062cb43c7f5738505ea423cead7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:20 +0800 Subject: [PATCH 053/200] New translations license.mdx (German) [ci skip] --- .../de-DE/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/license.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/license.mdx.mdx b/docs-crowdin-export/de-DE/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From af9b67edec5b7bd309cbbb9f3033bd192d3a0217 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:21 +0800 Subject: [PATCH 054/200] New translations license.mdx (Polish) [ci skip] --- .../pl-PL/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/license.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From 458cda2da2cf82600d25846650e1785f94d10552 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:22 +0800 Subject: [PATCH 055/200] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/license.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From d77fcf6b294a740b832992daa5cdaf2c33344732 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:23 +0800 Subject: [PATCH 056/200] New translations license.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/license.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From 1ed2cd9a71d4bbfb7ea4ee2cfdfab46408032237 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:25 +0800 Subject: [PATCH 057/200] New translations cross-to-windows.mdx (German) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From f4748173f97b12bce8418fe5cf276ba3a5b68f6c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:26 +0800 Subject: [PATCH 058/200] New translations cross-to-windows.mdx (Polish) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From f7c0a50e0e7286a86732908bd6f80ad94d6c0a13 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:27 +0800 Subject: [PATCH 059/200] New translations cross-to-windows.mdx (Russian) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From 8ddf4c3fb954471fe7c24b66664cdf7cc780b893 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:28 +0800 Subject: [PATCH 060/200] New translations cross-to-windows.mdx (Ukrainian) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From d193dc131400943b4b54ba9a2e6d240c01f902a0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:29 +0800 Subject: [PATCH 061/200] New translations library-project.mdx (German) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From 2d73d07923dc40022353dcc8a602ef80e490e97e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:30 +0800 Subject: [PATCH 062/200] New translations library-project.mdx (Polish) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From af96ba2ac2fe3e17432506037791ca111241b00d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:31 +0800 Subject: [PATCH 063/200] New translations library-project.mdx (Russian) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From b37aa2a380b54fadf4e970a62fc159f30bc93830 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:32 +0800 Subject: [PATCH 064/200] New translations library-project.mdx (Ukrainian) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From 9d9422b45b87d9832935ddf0ad7a5185b4b30b9e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:33 +0800 Subject: [PATCH 065/200] New translations multi-package-workspace.mdx (German) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From bb27b4e2e6403c5ed92d290821715fa3ae9bfaf6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:35 +0800 Subject: [PATCH 066/200] New translations multi-package-workspace.mdx (Polish) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From 54f5f78e2c1d0d390d834560667f60bdc6f35199 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:36 +0800 Subject: [PATCH 067/200] New translations multi-package-workspace.mdx (Russian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From 75cf0af9b4365b3c8348d78a76d5398ae577d360 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:37 +0800 Subject: [PATCH 068/200] New translations multi-package-workspace.mdx (Ukrainian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From 901ea9ebaae0c48e01fb4a252dd4abf8ecf82540 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:38 +0800 Subject: [PATCH 069/200] New translations build-profiles.mdx (German) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From a15470e6695027218779561da1238bee0b3c8b64 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:39 +0800 Subject: [PATCH 070/200] New translations build-profiles.mdx (Polish) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From a1ccaebfd317fff8d3e90878b1bc02219a254196 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:40 +0800 Subject: [PATCH 071/200] New translations build-profiles.mdx (Russian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From b6b171b2a914d81a699caf8f1275ebe7caa0709a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:41 +0800 Subject: [PATCH 072/200] New translations build-profiles.mdx (Ukrainian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From 746a26bae91c17266feaa59c8bf7f65d5f62c7ae Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:42 +0800 Subject: [PATCH 073/200] New translations build-system.mdx (German) [ci skip] --- .../de-DE/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From c9ff114b250bf3f6373f4cc43b83fe085db84089 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:44 +0800 Subject: [PATCH 074/200] New translations build-system.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From 462c53d93f324af749978c94b547b4854907b932 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:45 +0800 Subject: [PATCH 075/200] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From fc657b8a9911a89f49af3d9eda1bda2752cecd10 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:46 +0800 Subject: [PATCH 076/200] New translations build-system.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From 3f506e79af5376cbf84ad4e438f620916ae35f44 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:48 +0800 Subject: [PATCH 077/200] New translations cross-compilation.mdx (German) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From 32911212e81d2991b1ffeb6215c59ff1fb414bac Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:52 +0800 Subject: [PATCH 078/200] New translations cross-compilation.mdx (Polish) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From cb519cc4fd458731e6380b7fcb9cfdbb0f068295 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:21:56 +0800 Subject: [PATCH 079/200] New translations cross-compilation.mdx (Russian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From fcf21b2b2e02762671e12b277efee7a911a03923 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:00 +0800 Subject: [PATCH 080/200] New translations cross-compilation.mdx (Ukrainian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From 476f13676a6654348eab9c1a96b0ebf36afb6824 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:01 +0800 Subject: [PATCH 081/200] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From f0e587b12bc06bb227addb4c117b7ef4561f1bd8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:02 +0800 Subject: [PATCH 082/200] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From bebda1fe8afaaf275c0508e42703691221151ca9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:06 +0800 Subject: [PATCH 083/200] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From 95bb2048849a3fd95c5ee496b8148678393c937d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:07 +0800 Subject: [PATCH 084/200] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From 4cb8985bfb34a009690a26824f864e46df1ec117 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:08 +0800 Subject: [PATCH 085/200] New translations dependencies.mdx (German) [ci skip] --- .../de-DE/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From b3f14d1e68a4185eb539d7bd1d2011c8d53dd11a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:09 +0800 Subject: [PATCH 086/200] New translations dependencies.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From 6622353ff8523ab1eb4dc7bfacfb1735b1128143 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:11 +0800 Subject: [PATCH 087/200] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From fe6ac220e6e6c61ef0344771027d00c5f3986371 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:12 +0800 Subject: [PATCH 088/200] New translations dependencies.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From aaa6c99795dab553de827af72e40d89790a7d891 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:13 +0800 Subject: [PATCH 089/200] New translations environment-variables.mdx (German) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From 4ce4632a921c4d769fdfebdd34f14fffca10562a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:14 +0800 Subject: [PATCH 090/200] New translations environment-variables.mdx (Polish) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From e35f5e0ad1d22578c73ab8d744a73f9a3aab4bff Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:16 +0800 Subject: [PATCH 091/200] New translations environment-variables.mdx (Russian) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From 666794d33daa4d52ac17a3c67b17df26570c8494 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:17 +0800 Subject: [PATCH 092/200] New translations environment-variables.mdx (Ukrainian) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From bddbc3603a7404070a349a6c842ddb9dc1ea6e10 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:18 +0800 Subject: [PATCH 093/200] New translations platform-support.mdx (German) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From 25cc7b8f3b689ddcf26b821dcd4a491efe6765d8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:19 +0800 Subject: [PATCH 094/200] New translations platform-support.mdx (Polish) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From a67729a673adb2995a636e07e070fe6e978e33ce Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:20 +0800 Subject: [PATCH 095/200] New translations platform-support.mdx (Russian) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From 787e89f7796b97d290e875449336dfebee42a799 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:21 +0800 Subject: [PATCH 096/200] New translations platform-support.mdx (Ukrainian) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From ba20bf7d3d17a5b3faeb9666afb532613eb196b6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:23 +0800 Subject: [PATCH 097/200] New translations workspaces.mdx (German) [ci skip] --- .../de-DE/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From fc968d07bdfbacb4edd4a1634a181ca3b724993b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:24 +0800 Subject: [PATCH 098/200] New translations workspaces.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From 98fc25c40d9a6ccb96621e63dcdf5bf1c373007c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:25 +0800 Subject: [PATCH 099/200] New translations workspaces.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From 44cb4f3665941697032e7b516f428f1f1e79fa31 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:26 +0800 Subject: [PATCH 100/200] New translations workspaces.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From 184c44902ccbb672df4467c47b2bc202916e70c5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:27 +0800 Subject: [PATCH 101/200] New translations self-update.mdx (German) [ci skip] --- .../de-DE/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx b/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 50a2c59fed4cb1e7da6d07ab15d1c40f69ddb6a0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:28 +0800 Subject: [PATCH 102/200] New translations self-update.mdx (Polish) [ci skip] --- .../pl-PL/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx b/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 4b8d78dac72c0024d88dc88381ad0d365c78e549 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:29 +0800 Subject: [PATCH 103/200] New translations self-update.mdx (Russian) [ci skip] --- .../ru-RU/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 024bbfcaa9f095f81ffce35617f1bc9a762766a7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:31 +0800 Subject: [PATCH 104/200] New translations self-update.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx b/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From e9908f359d68ba5a10234240a44a8cc45849d1ff Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:32 +0800 Subject: [PATCH 105/200] New translations running-tests.mdx (German) [ci skip] --- .../de-DE/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From c050ffb8c4132a90f30d47d96b12d70c6f70e3c8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:33 +0800 Subject: [PATCH 106/200] New translations running-tests.mdx (Polish) [ci skip] --- .../pl-PL/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From ffaf1f1dd1b8f161c5b4a15a190f7f217d35a59b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:34 +0800 Subject: [PATCH 107/200] New translations running-tests.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From 82de72ce8d2e0ddd8e0438cc68783b81fba8de5e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:35 +0800 Subject: [PATCH 108/200] New translations running-tests.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From d498e677827bd98b7b69023aea13cecaa7f78f0c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:36 +0800 Subject: [PATCH 109/200] New translations test-framework.mdx (German) [ci skip] --- .../de-DE/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 39bba3cea85bd777358b2fcc18907725b60f51e5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:38 +0800 Subject: [PATCH 110/200] New translations test-framework.mdx (Polish) [ci skip] --- .../pl-PL/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 87bad94848b63b80206c93b5951daa862f2fa410 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:39 +0800 Subject: [PATCH 111/200] New translations test-framework.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 2f2c4aa2080f97589e1ddce031ed09b0eee87c7d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 7 Jul 2026 11:22:40 +0800 Subject: [PATCH 112/200] New translations test-framework.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 1f5b8cdcee332f9170008f6fce55cfda8257189b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:11 +0800 Subject: [PATCH 113/200] New translations project-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From c03fd37c14b5ff0d89c2a2fe8331f397e67e1656 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:12 +0800 Subject: [PATCH 114/200] New translations project-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 37f188701181972125eb6f503d061a9768ac214a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:13 +0800 Subject: [PATCH 115/200] New translations project-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From c41b3e7970346279dc447bd808266d1e55a77193 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:15 +0800 Subject: [PATCH 116/200] New translations project-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 9873a8d5138a2c78b0132ddb1fc874f5939f5d45 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:16 +0800 Subject: [PATCH 117/200] New translations system-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 47592c952d19812c0bc8ca0e71b83922bbd0f0f3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:17 +0800 Subject: [PATCH 118/200] New translations system-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 7d07863c8621d85f858d973babcd594026d62203 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:18 +0800 Subject: [PATCH 119/200] New translations system-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 6ed40d0aad07809d296225616337819ac56e286e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:19 +0800 Subject: [PATCH 120/200] New translations system-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 13b56160696a130064cafd466af2b1c2eaee8e58 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:20 +0800 Subject: [PATCH 121/200] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From f3952c1c0d3cd4f40684529402f3539e7340f116 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:21 +0800 Subject: [PATCH 122/200] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From 255663822b22e4f5682442b0cb8bfd1463cc5435 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:23 +0800 Subject: [PATCH 123/200] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From a566e33051d023aec1aac61aae1c12aaf967a040 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:24 +0800 Subject: [PATCH 124/200] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From d6d08fac5763bf4c4188710610f8378c754e857d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:25 +0800 Subject: [PATCH 125/200] New translations installation.mdx (German) [ci skip] --- .../de-DE/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 377b244db4cc49d5e03afcc6c5329a02db20558c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:26 +0800 Subject: [PATCH 126/200] New translations installation.mdx (Polish) [ci skip] --- .../pl-PL/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 6c7a7ad03e90a24864a75fc6130ad7f0e4743988 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:27 +0800 Subject: [PATCH 127/200] New translations installation.mdx (Russian) [ci skip] --- .../ru-RU/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From df3a45dd7aaa20c3347cc7d0614d572b8631dafe Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:28 +0800 Subject: [PATCH 128/200] New translations installation.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From bc2c2a48f65db1c3b1b912508549bd9d4c7dd201 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:30 +0800 Subject: [PATCH 129/200] New translations license.mdx (German) [ci skip] --- .../de-DE/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/license.mdx.mdx b/docs-crowdin-export/de-DE/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/de-DE/docs/license.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From 53e0ad953a11a9dc4d0a5849deb227addabe8114 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:31 +0800 Subject: [PATCH 130/200] New translations license.mdx (Polish) [ci skip] --- .../pl-PL/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From bc322577f9eab4de3a1e4de7e24db40c816cf7bd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:32 +0800 Subject: [PATCH 131/200] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From 87585f3524e20e5bd9106c1e568a26cd2f9f45cf Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:33 +0800 Subject: [PATCH 132/200] New translations license.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From 4bcf793a3960389ded4a3f75f7bc740591621754 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:34 +0800 Subject: [PATCH 133/200] New translations multi-package-workspace.mdx (German) [ci skip] --- .../de-DE/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From fe6191265cf3072c05825799c1dd9476e60a900f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:36 +0800 Subject: [PATCH 134/200] New translations multi-package-workspace.mdx (Polish) [ci skip] --- .../pl-PL/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From 085c14e5a9dc198e3e43461436019cb8f665abee Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:37 +0800 Subject: [PATCH 135/200] New translations multi-package-workspace.mdx (Russian) [ci skip] --- .../ru-RU/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From 952b0488db9a9616493801dd4cd0eeb7af9a36a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:38 +0800 Subject: [PATCH 136/200] New translations multi-package-workspace.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From 2ac38e6cce6741620e9e76ade56d8791ddb868fb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:39 +0800 Subject: [PATCH 137/200] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From de0007d16c7382d1929be41a27abc8fc96e33bb3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:41 +0800 Subject: [PATCH 138/200] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From 6000a27708f982492636272d0d778fd513fc714e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:42 +0800 Subject: [PATCH 139/200] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From 154e6d27d0792396e0d1bc9b397655908579df20 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:43 +0800 Subject: [PATCH 140/200] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From b2036ba46c921e4c31b2b7b1723252b2a1d58090 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:45 +0800 Subject: [PATCH 141/200] New translations dependencies.mdx (German) [ci skip] --- .../de-DE/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From df476cec1afceec711be2a96c2b2be1f4a7142f0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:46 +0800 Subject: [PATCH 142/200] New translations dependencies.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 0a32df1d0d8271077ad53010024145ec939701a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:47 +0800 Subject: [PATCH 143/200] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 2bc30de0ab9e1e2ca13c37f27b8362206fd67721 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:48 +0800 Subject: [PATCH 144/200] New translations dependencies.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 74fda0b89438906dec84864fb7edce71d19d4792 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:50 +0800 Subject: [PATCH 145/200] New translations workspaces.mdx (German) [ci skip] --- .../de-DE/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 887e3b919c80717fc17e0242f1420e481a0226ad Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:51 +0800 Subject: [PATCH 146/200] New translations workspaces.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 92e5b3ce8fd9b57311d7ea4b60a784a31181e8e5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:52 +0800 Subject: [PATCH 147/200] New translations workspaces.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 06a2387e5d2ff49c4ebcc3b041252f1dc5db7897 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:08:53 +0800 Subject: [PATCH 148/200] New translations workspaces.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 15b5ee011d705a1f6e4482be9655793d2778676c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:04 +0800 Subject: [PATCH 149/200] New translations readme.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/README.mdx.mdx b/docs-crowdin-export/de-DE/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/de-DE/docs/README.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From dbc1c477f2c7b0f0462330e872a074ec60b591aa Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:05 +0800 Subject: [PATCH 150/200] New translations readme.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From f301e20831ca89a638e9dc1065eefde99b5e39b0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:07 +0800 Subject: [PATCH 151/200] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From 94459ca7c9f6cacef076d479b77df9e65c8439b6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:08 +0800 Subject: [PATCH 152/200] New translations readme.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From 2213e5dfb8ae6a5b196994263dfc5eb5b5ae5f7f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:09 +0800 Subject: [PATCH 153/200] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### Added + +* **Dedicated Build Engine (`src/core/build/engine.rs`)** — decoupled the build orchestration logic completely from the CLI front-end wrapper in `src/cli/build.rs` to a reusable, decoupled core build engine. +* **Polymorphic Language Model (`Language` trait)** — introduced the abstract `Language` trait (`src/core/build/language/mod.rs`). File scanning, compiler resolution, and flags handling are now encapsulated in dedicated language modules for C, C++ (including Qt code generation), LLVM IR, and ASM (GAS, NASM, FASM, MASM). +* **Polymorphic Compilation Dispatch (`Builder` trait)** — introduced the `Builder` trait to generalize builder invocations (`src/core/build/builder/mod.rs`). Consolidated GCC/Clang logic into `builder/cc_common.rs` and Microsoft Visual C++ logic into `builder/msvc/`. +* **Per-Language Configuration overrides (`[build.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[build.asm]`) independently in `dcr.toml`. +* **Automatic Workspace Dependency Injection** — during workspace builds, include/lib paths of dependent workspace members (including their source headers, local `include/` folders, and build target `target/include` / `target/lib` folders) are automatically resolved and injected. +* **`BuildReporter` Event System** — decoupled build orchestration output into a structured event-driven reporter model (`src/core/build/report.rs`), making DCR suitable for library embedding and IDE integrations without stderr capturing. +* **Build Cancellation Support** — introduced thread-safe cancellation tokens (`Arc\`) allowing clients to safely abort compile runs mid-execution. +* **TOML Formatting & Custom Keys Preservation** — migrated the config editor to `toml_edit`, preserving all unknown/user-defined TOML keys, structures, and comments during file write operations (e.g., in `dcr add`). +* **Path Dependencies Target Include Resolution** — local path dependencies configured via tables now correctly expose headers built and packaged into their `target/include` folder to consumer packages. +* **Modular Integration Test Suite** — refactored the monolith `tests/cli_basic.rs` file into clean, specialized integration tests: `cli_build.rs`, `cli_deps.rs`, `cli_lint.rs`, `cli_new.rs`, `cli_qt.rs`, `cli_test.rs`, `cli_workspace.rs`. + +### Changed + +* **Consolidated Linking and Archiving** — artifact generation (linking executables/shared libraries and archiving static libraries) consolidated into a single `src/core/build/builder/artifact.rs` module. +* **Workspace-Aware member execution** — `dcr run` executed at the workspace root of a `workspace_only` project now triggers the member build inside the workspace context using the `--workspace` parameter, preventing standalone build issues. +* **Elimination of Global State** — removed global variables and states from the build core, encapsulating build logic inside isolated `BuildContext` structs for thread safety. +* **Build Cache Separation** — relocated mtime tracking, incremental caching, and header-dependency checking logic to `src/core/build/cache.rs`. +* **Modularized Pre-build Steps** — decoupled generator scripts and pre-build commands parsing into `src/core/build/steps.rs`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From 7361ff8992e9416cd8162a512ad9259774daba26 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:11 +0800 Subject: [PATCH 154/200] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### Added + +* **Dedicated Build Engine (`src/core/build/engine.rs`)** — decoupled the build orchestration logic completely from the CLI front-end wrapper in `src/cli/build.rs` to a reusable, decoupled core build engine. +* **Polymorphic Language Model (`Language` trait)** — introduced the abstract `Language` trait (`src/core/build/language/mod.rs`). File scanning, compiler resolution, and flags handling are now encapsulated in dedicated language modules for C, C++ (including Qt code generation), LLVM IR, and ASM (GAS, NASM, FASM, MASM). +* **Polymorphic Compilation Dispatch (`Builder` trait)** — introduced the `Builder` trait to generalize builder invocations (`src/core/build/builder/mod.rs`). Consolidated GCC/Clang logic into `builder/cc_common.rs` and Microsoft Visual C++ logic into `builder/msvc/`. +* **Per-Language Configuration overrides (`[build.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[build.asm]`) independently in `dcr.toml`. +* **Automatic Workspace Dependency Injection** — during workspace builds, include/lib paths of dependent workspace members (including their source headers, local `include/` folders, and build target `target/include` / `target/lib` folders) are automatically resolved and injected. +* **`BuildReporter` Event System** — decoupled build orchestration output into a structured event-driven reporter model (`src/core/build/report.rs`), making DCR suitable for library embedding and IDE integrations without stderr capturing. +* **Build Cancellation Support** — introduced thread-safe cancellation tokens (`Arc\`) allowing clients to safely abort compile runs mid-execution. +* **TOML Formatting & Custom Keys Preservation** — migrated the config editor to `toml_edit`, preserving all unknown/user-defined TOML keys, structures, and comments during file write operations (e.g., in `dcr add`). +* **Path Dependencies Target Include Resolution** — local path dependencies configured via tables now correctly expose headers built and packaged into their `target/include` folder to consumer packages. +* **Modular Integration Test Suite** — refactored the monolith `tests/cli_basic.rs` file into clean, specialized integration tests: `cli_build.rs`, `cli_deps.rs`, `cli_lint.rs`, `cli_new.rs`, `cli_qt.rs`, `cli_test.rs`, `cli_workspace.rs`. + +### Changed + +* **Consolidated Linking and Archiving** — artifact generation (linking executables/shared libraries and archiving static libraries) consolidated into a single `src/core/build/builder/artifact.rs` module. +* **Workspace-Aware member execution** — `dcr run` executed at the workspace root of a `workspace_only` project now triggers the member build inside the workspace context using the `--workspace` parameter, preventing standalone build issues. +* **Elimination of Global State** — removed global variables and states from the build core, encapsulating build logic inside isolated `BuildContext` structs for thread safety. +* **Build Cache Separation** — relocated mtime tracking, incremental caching, and header-dependency checking logic to `src/core/build/cache.rs`. +* **Modularized Pre-build Steps** — decoupled generator scripts and pre-build commands parsing into `src/core/build/steps.rs`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From 15a1c753fc416d81e8f901643681cbc6138acff4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:13 +0800 Subject: [PATCH 155/200] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### Added + +* **Dedicated Build Engine (`src/core/build/engine.rs`)** — decoupled the build orchestration logic completely from the CLI front-end wrapper in `src/cli/build.rs` to a reusable, decoupled core build engine. +* **Polymorphic Language Model (`Language` trait)** — introduced the abstract `Language` trait (`src/core/build/language/mod.rs`). File scanning, compiler resolution, and flags handling are now encapsulated in dedicated language modules for C, C++ (including Qt code generation), LLVM IR, and ASM (GAS, NASM, FASM, MASM). +* **Polymorphic Compilation Dispatch (`Builder` trait)** — introduced the `Builder` trait to generalize builder invocations (`src/core/build/builder/mod.rs`). Consolidated GCC/Clang logic into `builder/cc_common.rs` and Microsoft Visual C++ logic into `builder/msvc/`. +* **Per-Language Configuration overrides (`[build.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[build.asm]`) independently in `dcr.toml`. +* **Automatic Workspace Dependency Injection** — during workspace builds, include/lib paths of dependent workspace members (including their source headers, local `include/` folders, and build target `target/include` / `target/lib` folders) are automatically resolved and injected. +* **`BuildReporter` Event System** — decoupled build orchestration output into a structured event-driven reporter model (`src/core/build/report.rs`), making DCR suitable for library embedding and IDE integrations without stderr capturing. +* **Build Cancellation Support** — introduced thread-safe cancellation tokens (`Arc\`) allowing clients to safely abort compile runs mid-execution. +* **TOML Formatting & Custom Keys Preservation** — migrated the config editor to `toml_edit`, preserving all unknown/user-defined TOML keys, structures, and comments during file write operations (e.g., in `dcr add`). +* **Path Dependencies Target Include Resolution** — local path dependencies configured via tables now correctly expose headers built and packaged into their `target/include` folder to consumer packages. +* **Modular Integration Test Suite** — refactored the monolith `tests/cli_basic.rs` file into clean, specialized integration tests: `cli_build.rs`, `cli_deps.rs`, `cli_lint.rs`, `cli_new.rs`, `cli_qt.rs`, `cli_test.rs`, `cli_workspace.rs`. + +### Changed + +* **Consolidated Linking and Archiving** — artifact generation (linking executables/shared libraries and archiving static libraries) consolidated into a single `src/core/build/builder/artifact.rs` module. +* **Workspace-Aware member execution** — `dcr run` executed at the workspace root of a `workspace_only` project now triggers the member build inside the workspace context using the `--workspace` parameter, preventing standalone build issues. +* **Elimination of Global State** — removed global variables and states from the build core, encapsulating build logic inside isolated `BuildContext` structs for thread safety. +* **Build Cache Separation** — relocated mtime tracking, incremental caching, and header-dependency checking logic to `src/core/build/cache.rs`. +* **Modularized Pre-build Steps** — decoupled generator scripts and pre-build commands parsing into `src/core/build/steps.rs`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From d261b705f61274ea3e64d869c4a1236c476cdd33 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:14 +0800 Subject: [PATCH 156/200] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### Added + +* **Dedicated Build Engine (`src/core/build/engine.rs`)** — decoupled the build orchestration logic completely from the CLI front-end wrapper in `src/cli/build.rs` to a reusable, decoupled core build engine. +* **Polymorphic Language Model (`Language` trait)** — introduced the abstract `Language` trait (`src/core/build/language/mod.rs`). File scanning, compiler resolution, and flags handling are now encapsulated in dedicated language modules for C, C++ (including Qt code generation), LLVM IR, and ASM (GAS, NASM, FASM, MASM). +* **Polymorphic Compilation Dispatch (`Builder` trait)** — introduced the `Builder` trait to generalize builder invocations (`src/core/build/builder/mod.rs`). Consolidated GCC/Clang logic into `builder/cc_common.rs` and Microsoft Visual C++ logic into `builder/msvc/`. +* **Per-Language Configuration overrides (`[build.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[build.asm]`) independently in `dcr.toml`. +* **Automatic Workspace Dependency Injection** — during workspace builds, include/lib paths of dependent workspace members (including their source headers, local `include/` folders, and build target `target/include` / `target/lib` folders) are automatically resolved and injected. +* **`BuildReporter` Event System** — decoupled build orchestration output into a structured event-driven reporter model (`src/core/build/report.rs`), making DCR suitable for library embedding and IDE integrations without stderr capturing. +* **Build Cancellation Support** — introduced thread-safe cancellation tokens (`Arc\`) allowing clients to safely abort compile runs mid-execution. +* **TOML Formatting & Custom Keys Preservation** — migrated the config editor to `toml_edit`, preserving all unknown/user-defined TOML keys, structures, and comments during file write operations (e.g., in `dcr add`). +* **Path Dependencies Target Include Resolution** — local path dependencies configured via tables now correctly expose headers built and packaged into their `target/include` folder to consumer packages. +* **Modular Integration Test Suite** — refactored the monolith `tests/cli_basic.rs` file into clean, specialized integration tests: `cli_build.rs`, `cli_deps.rs`, `cli_lint.rs`, `cli_new.rs`, `cli_qt.rs`, `cli_test.rs`, `cli_workspace.rs`. + +### Changed + +* **Consolidated Linking and Archiving** — artifact generation (linking executables/shared libraries and archiving static libraries) consolidated into a single `src/core/build/builder/artifact.rs` module. +* **Workspace-Aware member execution** — `dcr run` executed at the workspace root of a `workspace_only` project now triggers the member build inside the workspace context using the `--workspace` parameter, preventing standalone build issues. +* **Elimination of Global State** — removed global variables and states from the build core, encapsulating build logic inside isolated `BuildContext` structs for thread safety. +* **Build Cache Separation** — relocated mtime tracking, incremental caching, and header-dependency checking logic to `src/core/build/cache.rs`. +* **Modularized Pre-build Steps** — decoupled generator scripts and pre-build commands parsing into `src/core/build/steps.rs`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From 98205b0c66ebb2ac54cded17ac8a3b903e051b05 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:16 +0800 Subject: [PATCH 157/200] New translations build-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From de6346d6c930afd4a2b6c89e5f4ec06690f693d5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:17 +0800 Subject: [PATCH 158/200] New translations build-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From 0a1cff31b2e202ed9c68b7a86eae5ba5cdd2e64b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:18 +0800 Subject: [PATCH 159/200] New translations build-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From 75a6a63a1b4a9058adff60ec395ecd16aed7f357 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:19 +0800 Subject: [PATCH 160/200] New translations build-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From ffb31a4947842e796c1171de105a279638ce6b4c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:21 +0800 Subject: [PATCH 161/200] New translations contributing.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From 72816a3b532d29e823b255f3d7b8bd6610c6fbf5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:22 +0800 Subject: [PATCH 162/200] New translations contributing.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From f10056912c44c1786b26aef3469c1e2a94fdfc77 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:23 +0800 Subject: [PATCH 163/200] New translations contributing.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From 56becced2a01de7ee17a16ea573feae8f91d5e44 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:24 +0800 Subject: [PATCH 164/200] New translations contributing.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From ec35a981e5d248e58ab78f3227f71f45c8ba6248 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:26 +0800 Subject: [PATCH 165/200] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From df4dca15f3b7310b54fdd49fe24977b70dac3493 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:27 +0800 Subject: [PATCH 166/200] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From a20ca20a43b7f070af018e0ce1588d0a1fe141f1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:28 +0800 Subject: [PATCH 167/200] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 8b3a5d0a2d0c219fe212e7c8bd69991b61f805c2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:29 +0800 Subject: [PATCH 168/200] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 3583da762a721a5a7a88183a9dd7b8410659f651 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:30 +0800 Subject: [PATCH 169/200] New translations first-steps.mdx (German) [ci skip] --- .../de-DE/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From 8a7e891f0c8056b355f02034c4c19a69fd85209c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:32 +0800 Subject: [PATCH 170/200] New translations first-steps.mdx (Polish) [ci skip] --- .../pl-PL/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From c7b71b2e93918aa06b55013210ffabe76cd39130 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:33 +0800 Subject: [PATCH 171/200] New translations first-steps.mdx (Russian) [ci skip] --- .../ru-RU/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From 40eeed48f088b44af178f94cf66922ee8776976d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:34 +0800 Subject: [PATCH 172/200] New translations first-steps.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From da0ae39589b18bbdaa54296b36c2601a0fd37e63 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:35 +0800 Subject: [PATCH 173/200] New translations build-system.mdx (German) [ci skip] --- .../de-DE/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From b2c03dadc4f46e9530ed17d600d12156fe320adb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:37 +0800 Subject: [PATCH 174/200] New translations build-system.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From db4983b9e50885c809fcf28bf683cac825f6e516 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:38 +0800 Subject: [PATCH 175/200] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From 90d9e3b4b3b3424ec0a66413839e8d6ae56086be Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:39 +0800 Subject: [PATCH 176/200] New translations build-system.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From 5fa4c5e3ea33044bf7c5c8041daa1db57b820e5e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:41 +0800 Subject: [PATCH 177/200] New translations cross-compilation.mdx (German) [ci skip] --- .../de-DE/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From 67b00b7459b2d589e668acd0a56b64b036a1e966 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:42 +0800 Subject: [PATCH 178/200] New translations cross-compilation.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From 24585646a86ca9be9ea3a7b60b97c770f9b2b3e1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:43 +0800 Subject: [PATCH 179/200] New translations cross-compilation.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From 5d91f93bbf762ea8870d52df433e7efed5e2623f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:44 +0800 Subject: [PATCH 180/200] New translations cross-compilation.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From e22c49d66a4a5f92bc8d5815f5d4bf176ada3412 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:46 +0800 Subject: [PATCH 181/200] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 0e4d8f2fa7be8ee0c3e47cf43c54b46b2a557694 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:47 +0800 Subject: [PATCH 182/200] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 505a5371ac637a4fb36a95963deec801b72760e4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:49 +0800 Subject: [PATCH 183/200] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From fa55fa0c4493be30000f9bf55c48919d55fb74b4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:51 +0800 Subject: [PATCH 184/200] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 5340793fff421296b3aca71645a766ec228dbbdc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:52 +0800 Subject: [PATCH 185/200] New translations dependencies.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 0f96005356ad216f08baea41e8ab4e5bf7ef6483 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:53 +0800 Subject: [PATCH 186/200] New translations dependencies.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From c204124d5bb5659eecd9790a65a7909c3f8ca1db Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:55 +0800 Subject: [PATCH 187/200] New translations dependencies.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 4503e71f8c490cada13a4bf17d868aef3ac421cb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:56 +0800 Subject: [PATCH 188/200] New translations dependencies.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 37de001497143811ef338c9ce8a6d0e98e31ae4e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:57 +0800 Subject: [PATCH 189/200] New translations platform-support.mdx (German) [ci skip] --- .../de-DE/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From 7e35f9e73388405d91ba6fa36a01a3f2c26daa86 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:59 +0800 Subject: [PATCH 190/200] New translations platform-support.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From e10ae8ca995c810bebf7853d9c373aa125574221 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:00 +0800 Subject: [PATCH 191/200] New translations platform-support.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From 32d90ab2b47ac2fead79ce179d914756db7fad57 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:01 +0800 Subject: [PATCH 192/200] New translations platform-support.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From 0a182eb7a3c975349629719bed97429579ad96f2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:02 +0800 Subject: [PATCH 193/200] New translations workspaces.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From 16340b4ce12c35e0f64ed594af4eada2f0c3d1c7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:04 +0800 Subject: [PATCH 194/200] New translations workspaces.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From c0220f8037176168b662a6f7f684e73a491f4dfc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:05 +0800 Subject: [PATCH 195/200] New translations workspaces.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From 950380d500efcf43d61337dbca3f0ac630250da1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:06 +0800 Subject: [PATCH 196/200] New translations workspaces.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From 42350f7d85d0371dbd30a53a532606122641fbc5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:07 +0800 Subject: [PATCH 197/200] New translations os-flat-bin-archive.mdx (German) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 9078d16e52ed7739cbcb24268ccb0cc3b63830c7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:09 +0800 Subject: [PATCH 198/200] New translations os-flat-bin-archive.mdx (Polish) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 091e2fd42677aea7e3bd8d23bac56d99342c439d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:10 +0800 Subject: [PATCH 199/200] New translations os-flat-bin-archive.mdx (Russian) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 658cb17ffa981855a2fc1c25772e278b3f8667e2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:11 +0800 Subject: [PATCH 200/200] New translations os-flat-bin-archive.mdx (Ukrainian) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary.