DCR | Build Tool
8 subscribers
13 links
DCR is a utility for managing C/C++ projects in a Cargo-like style.
DCR — это утилита для управления проектами на C/C++ в стиле Cargo.
---
Site: dcr-tool.ru
GitHub: dexoron/dcr
X: dcr_tool
FaceBook: dcrtool
VK: dcr_tool
Download Telegram
Channel created
Channel photo updated
DCR: A Modern Build Tool for C/C++ Projects

DCR is a modern, blazing-fast, and minimalist build tool designed for C/C++ development, built from scratch in Rust. Our mission is to eliminate the complexity of monolithic build environments like CMake and provide developers with a clean, fast, and predictable experience inspired by Cargo.

Core Features:

* High Performance: Core engine written in Rust, optimized for massive concurrency.
* Minimalist Configuration: Manage your entire codebase with simple, readable configuration files.
* Smart Dependency Tracking: DCR accurately analyzes source trees and rebuilds only what is strictly necessary.
* Cross-Platform: Native support for Linux, macOS, and BSD systems.

Installation & Update (Arch Linux):

yay -Syu dcr


(Pre-compiled binaries for other environments are available on the releases page).

DCR is completely open-source under the GPLv3 license. Try it out, report bugs, and help us improve the ecosystem.

🐙 GitHub: https://github.com/dexoron/dcr
📖 Documentation: https://dcr.dexoron.su/docs
DCR: Современный инструмент сборки для C/C++ проектов

DCR — это современный, производительный и минималистичный инструмент сборки для проектов на C/C++, написанный на Rust. Наша цель — избавить системных разработчиков от перегруженных и сложных конфигураций CMake, предоставив понятный, быстрый и предсказуемый developer experience, близкий к экосистеме Cargo.

Ключевые особенности DCR:

* Высокая производительность: Движок сборки написан на Rust и оптимизирован под эффективное использование многопоточности.
* Минималистичный конфиг: Управление проектом через интуитивно понятные файлы конфигурации без визуального шума.
* Умное отслеживание зависимостей: Инструмент корректно обрабатывает дерево исходников и пересобирает только то, что действительно изменилось.
* Кроссплатформенность: Полноценная поддержка Linux, macOS и BSD-систем.

Установка и обновление (Arch Linux):

yay -Syu dcr


(Также доступны предкомпилированные бинарные файлы на странице релизов).

DCR полностью открыт и распространяется под лицензией GPLv3.

🐙 GitHub: https://github.com/dexoron/dcr
📖 Документация: https://dcr.dexoron.su/docs
DCR | Build Tool pinned «DCR: A Modern Build Tool for C/C++ Projects DCR is a modern, blazing-fast, and minimalist build tool designed for C/C++ development, built from scratch in Rust. Our mission is to eliminate the complexity of monolithic build environments like CMake and provide…»
DCR | Build Tool pinned «DCR: Современный инструмент сборки для C/C++ проектов DCR — это современный, производительный и минималистичный инструмент сборки для проектов на C/C++, написанный на Rust. Наша цель — избавить системных разработчиков от перегруженных и сложных конфигураций…»
DCR v0.7.1 is officially live! 🚀

We have just released a fresh patch update for DCR — the modern, fast, and minimalist build tool for C/C++ written in Rust. This release focuses on fixing critical bugs and improving stability across all supported platforms following our major 0.7.0 update.

What's Fixed and Improved:

* `DCR_LIBS` Parsing: Fixed a bug where a list of multiple libraries in DCR_LIBS separated by spaces was being parsed incorrectly.
* Output Paths: Resolved an issue with absolute path generation for target output binaries.
* Dynamic Libraries: Fixed dynamic library linking on Linux (.so) and macOS (.dylib).
* Source Tracking: Fixed a critical bug where changes in source files (.c / .cpp) were occasionally ignored, failing to trigger a rebuild.

Installation & Update (Arch Linux):

yay -Syu dcr


(Pre-compiled binaries for other environments are available on the GitHub Releases page).

DCR is open-source under the GPLv3 license. Try it out, report issues, and help us make C/C++ builds painless!

🐙 GitHub Release & Changelog: https://github.com/dexoron/dcr/releases/tag/v0.7.1
Официальный релиз DCR v0.7.1! 🚀

Вышел свежий патч для DCR — современного, быстрого и минималистичного инструмента сборки проектов на C/C++, написанного на Rust. Этот релиз полностью сосредоточен на исправлении критических багов и повышении стабильности работы на всех платформах после крупного обновления 0.7.0.

Что исправлено и улучшено:

* Парсинг `DCR_LIBS`: Исправлен баг, из-за которого список из нескольких библиотек, разделенных пробелами, парсился некорректно.
* Выходные пути: Исправлена генерация абсолютных путей для готовых бинарных файлов.
* Динамические библиотеки: Полноценно исправлена линковка динамических библиотек для Linux (.so) и macOS (.dylib).
* Отслеживание исходников: Устранен критический баг, из-за которого изменения в файлах исходного кода (.c / .cpp) иногда игнорировались и не запускали пересборку.

Установка и обновление (Arch Linux):

yay -Syu dcr


(Также предкомпилированные бинарники под другие платформы доступны на странице релизов).

Проект полностью открыт под лицензией GPLv3. Обновляйтесь, тестируйте и делитесь фидбеком!

🐙 GitHub Релиз и чейнджлог: https://github.com/dexoron/dcr/releases/tag/v0.7.1
DCR v0.7.2 is officially live! 🚀

We have just released a fresh update for DCR — the modern, fast, and minimalist build tool for C/C++ written in Rust. This release focuses on improving host target resolution, fixing cross-compilation edge cases, and resolving critical linking issues on macOS.

What's New in v0.7.2:

* Target Environment Support: default_target_triple() now respects target_env — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values.
* macOS Apple Silicon Fix: Fixed a bug where builds failed with _main undefined — --target= is now correctly passed to ldflags, not just cflags. Also, target resolution on macOS now dynamically uses std::env::consts::ARCH instead of hardcoding x86_64.
* Repository Styling: Fixed GitHub Stars and GPL-3.0 badges not rendering properly in README by converting the badge block to pure HTML.
* Codebase Cleanup: Extracted default target resolution into a shared default_target_triple() function, removing code duplication across build, run, and clean commands.

Installation & Update (Arch Linux):

yay -Syu dcr

(Pre-compiled binaries for other environments are available on the GitHub Releases page).

DCR is open-source under the GPLv3 license. Try it out, report issues, and help us make C/C++ builds painless!

🐙 GitHub Release & Changelog: https://github.com/dexoron/dcr/releases/tag/v0.7.2
Официальный релиз DCR v0.7.2! 🚀

Вышел свежий патч для DCR — современного, быстрого и минималистичного инструмента сборки проектов на C/C++, написанного на Rust. Этот релиз полностью сосредоточен на улучшении автоматического определения целевых платформ, исправлении кросс-компиляции и устранении критических ошибок линковки на macOS.

Что исправлено и улучшено:

* Поддержка окружения таргетов: Функция default_target_triple() теперь учитывает target_env. Платформы Linux (gnu/musl) и Windows (msvc/gnu) теперь используют правильное окружение вместо жестко захардкоженных значений.
* Исправление для macOS Apple Silicon: Устранен баг, из-за которого сборка падала с ошибкой _main undefined — флаг --target= теперь корректно передается и в ldflags, а не только в cflags. Кроме того, определение таргета по умолчанию на macOS теперь использует динамический std::env::consts::ARCH вместо хардкода x86_64.
* Отображение README: Исправлен баг, из-за которого бейджи GitHub Stars и GPL-3.0 не рендерились на странице репозитория — блок бейджей полностью переведен на чистый HTML.
* Рефакторинг кодовой базы: Вычисление целевой платформы по умолчанию вынесено в общую функцию default_target_triple(), что полностью устранило дублирование логики в командах build, run и clean.

Установка и обновление (Arch Linux):

yay -Syu dcr

(Также предкомпилированные бинарники под другие платформы доступны на странице релизов).

Проект полностью открыт под лицензией GPLv3. Обновляйтесь, тестируйте и делитесь фидбеком!

🐙 GitHub Релиз и чейнджлог: https://github.com/dexoron/dcr/releases/tag/v0.7.2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
По результатам голосования, будет приобретён домен dcr-tool.ru
Всем спасибо за участие в голосование
DCR v0.7.3 is officially live! 🚀

We have just released a fresh update for DCR — the modern, fast, and minimalist build tool for C/C++ written in Rust. This release focuses on optimizing the codebase, reducing binary size, and improving Version Control System (VCS) integration.

What's New and Changed:

* Complete removal of git2 dependency: All Git operations (dependency fetching, VCS initialization, and status checks) are now delegated to the system git executable via Command. This simplifies compilation and drops the need for complex features like vendored and openssl.
* 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.
* --vcs option for new and init commands: Introduced explicit version control selection via --vcs <git|none>. Git repository initialization now automatically generates a proper .gitignore file excluding the /target directory.
* Nested repository prevention: Automatic Git initialization is now smartly skipped if dcr new or dcr init is executed inside an already existing Git repository.
* Git metadata in --version: The CLI now appends the current short commit hash and a -dirty suffix if there are uncommitted changes in the repository.
* Added new_vcs_options_work and init_vcs_options_work integration tests to ensure reliable repository behavior.

🌐 Great news for the ecosystem: we have acquired a new official domain! dcr-tool.ru is now fully configured and live, making it much easier to access the project site, documentation, and setup scripts.

Installation & Update (Arch Linux):

yay -Syu dcr

(Pre-compiled binaries for other environments are available on the GitHub Releases page).

DCR is open-source under the GPLv3 license. Try it out, report issues, and help us make C/C++ builds painless!

🐙 GitHub Release & Changelog: https://github.com/dexoron/dcr/releases/tag/v0.7.3
📖 New Website & Docs: https://dcr-tool.ru
Официальный релиз DCR v0.7.3! 🚀

Вышел новый патч для DCR — современного, быстрого и минималистичного инструмента сборки проектов на C/C++, написанного на Rust. Этот релиз полностью посвящен оптимизации кодовой базы, уменьшению размера бинарника и улучшению работы с системами контроля версий (VCS).

Что нового и изменено:

* Полный отказ от библиотеки git2: Все действия с Git (клонирование зависимостей, инициализация и проверки) теперь выполняются через системный вызов утилиты git через Command. Это значительно облегчает сборку самого DCR и убирает сложные зависимости вроде openssl и фичи vendored.
* Миграция на ureq: В модуле автообновления (flag_update.rs) тяжелый клиент reqwest заменен на легковесный синхронный ureq 2.10, что заметно снизило оверхед и уменьшило финальный размер бинарного файла.
* Параметр --vcs для команд new и init: Теперь можно явно указать систему контроля версий через --vcs <git|none>. При инициализации Git теперь автоматически создается правильный .gitignore с исключением директории /target.
* Защита от вложенных репозиториев: Автоматическое создание Git-репозитория теперь корректно пропускается, если команды dcr new или dcr init запускаются внутри уже существующего репозитория.
* Хэш коммита в --version: Утилита теперь выводит короткий хэш текущего коммита, а также суффикс -dirty, если в кодовой базе есть незакоммиченные изменения.
* Добавлены интеграционные тесты new_vcs_options_work и init_vcs_options_work для проверки логики инициализации репозиториев.

🌐 Главная новость: у проекта появился новый официальный домен! dcr-tool.ru успешно куплен и запущен. Теперь переходить на сайт, читать доки и использовать скрипты установки станет гораздо удобнее. Старые адреса тоже работают, но этот домен теперь основной!

Установка и обновление (Arch Linux):

yay -Syu dcr

(Также предкомпилированные бинарники под другие платформы доступны на странице релизов).

Проект полностью открыт под лицензией GPLv3. Обновляйтесь, тестируйте и делитесь фидбеком!

🐙 GitHub Релиз и чейнджлог: https://github.com/dexoron/dcr/releases/tag/v0.7.3
📖 Новый адрес сайта и документации: https://dcr-tool.ru
DCR v0.7.4 is officially live! 🚀

This update brings native Qt automation, major improvements for low-level embedded/bare-metal development, and new assembler backends.

What's New:

* Native Qt Support: automatic meta-object handling (MOC, UIC, RCC) via build.qt = true in dcr.toml.
* `dcr lint` Command: C/C++ static analysis via clang-tidy with --fix support for automated fixes.
* Bare-Metal & Freestanding Automation: build.freestanding = true automatically injects -ffreestanding, -nostdlib, and -static flags.
* Artifact Optimization: introduced build.lto (LTO optimization) and build.strip (stripping debug symbols via -s).
* Three New Assembler Backends: native support for MASM (ml/ml64), FASM (fasm), and LLVM IR (llc). The entire pipeline is now consolidated into asm.rs.
* Build & Panic Control: added build.codegen-units (thread limitation for parallel_build) and build.panic = "abort" (strips C++ exception handling/unwind tables).

⚙️ Changed:

* Automatic injection of fallback flags is now suppressed for bare-metal targets if custom build.cflags are provided.
* Major codebase refactoring: utilities extracted to utils/build.rs, utils/fs.rs, and config.rs renamed to templates.rs.

Installation & Update (Arch Linux):
yay -Syu dcr

DCR is open-source under the GPLv3 license!

🐙 GitHub Release & Changelog: https://github.com/dexoron/dcr/releases/tag/v0.7.4
📖 Website & Docs: https://dcr-tool.ru

#it #dcr #my_project #rust #cpp #qt #embedded
Большое обновление DCR v0.7.4! 🚀

Этот релиз выводит инструмент на новый уровень автоматизации низкоуровневой разработки и добавляет долгожданную нативную поддержку Qt.

Что нового:

* Нативная поддержка Qt: автоматическая обработка мета-объектов (MOC, UIC, RCC) при включении флага build.qt = true.
* Команда `dcr lint`: встроенный статический анализ кода через clang-tidy с поддержкой флага --fix для автоисправлений.
* Автоматизация Bare-Metal / Freestanding: параметр build.freestanding = true автоматически инжектирует флаги -ffreestanding, -nostdlib и -static.
* Оптимизация артефактов (LTO и Strip): добавлены параметры build.lto (флаг -flto) и build.strip (отсекание отладочной информации через -s).
* Три новых ассемблерных бэкенда: добавлена поддержка MASM (ml/ml64), FASM (fasm) и компиляции LLVM IR (llc). Архитектура линковки вынесена в asm.rs, теперь новый ASM-бэкенд пишется всего за ~30 строк.
* Контроль сборки: параметры build.codegen-units (лимит потоков для parallel_build) и build.panic = "abort" (отключение исключений и таблиц раскрутки стека через -fno-exceptions).

⚙️ Изменено:

* Умные дефолтные флаги теперь автоматически отключаются для bare-metal целей, если переопределен параметр build.cflags.
* Глобальный рефакторинг: логика вынесена в utils/build.rs, utils/fs.rs, а файл config.rs переименован в templates.rs.

Установка и обновление:
yay -Syu dcr

Проект полностью открыт под лицензией GPLv3. Обновляйтесь и делитесь фидбеком!

🐙 GitHub Релиз и чейнджлог: https://github.com/dexoron/dcr/releases/tag/v0.7.4
📖 Документация проекта: https://dcr-tool.ru
🌐 Our domains:
• Main website (Russia/CIS): https://dcr-tool.ru
• Alternative address: https://dcr.dexoron.su
• Mirror (Worldwide): https://dcr.alpee.org
• Mirror 2 (Worldwide): https://dcr-tool.pages.dev
🌐 Наши домены:
• Главный сайт (РФ/СНГ): https://dcr-tool.ru
• Альтернативный адрес: https://dcr.dexoron.su
• Зеркало 2 (Для всего мира): https://dcr.alpee.org
• Зеркало (Для всего мира): https://dcr-tool.pages.dev

!!!Если вы проживаете на территории РФ, сайт может не грузиться, используйте для этого VPN!!!