Skip to main content

DCR — C/C++ Build Tool & Package Manager

Quick reference
# Installation (dcrup)
curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install
export PATH="$HOME/.dcr/bin:$PATH"
dcrup install stable # auto: cf → gh → sf → ya
# dcrup install stable --mirror cf # CloudFlare / GitHub / SourceForge / Yandex

# 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

SectionDescription
Getting StartedInstallation and first steps
CommandsAll CLI commands
ReferenceConfiguration, build, dependencies, platforms
TestingBuilt-in test framework
RecipesCommon scenarios
IDE IntegrationVS Code, CLion, compile_commands.json
Self UpdateAuto-update
FAQFrequently asked questions
ChangelogVersion history
LicenseDCR and vendored library licenses
ContributingDCR development

Features

  • Incremental builds — mtime + .d headers + SHA256 fingerprint
  • Parallel compilation — thread::scope, atomic task queue
  • 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
  • Registry + Git + Path — three dependency mechanisms
  • IDE generation — VS Code, CLion, compile_commands.json, JSON metadata
  • pkg-config — automatic system library discovery
  • Per-command --helpdcr build --help, dcr new --help, etc.
  • Man pagesman dcr, man dcr-build, man dcr-new