4.4 KiB
DCR (Dexoron Cargo Realization)
DCR — это утилита для управления проектами на C. Она задает единый формат проекта, дает команды для создания, сборки и запуска, и использует один конфигурационный файл dcr.toml.
Проект находится на стадии MVP. Текущая реализация написана на Python и в будущем будет переписана.
Зачем DCR
- Единая структура проекта без ручной настройки
- Простые команды для типовых задач
- Прозрачная компиляция и предсказуемые профили сборки
Возможности
- Создание нового проекта или инициализация текущей директории
- Сборка проекта в профилях
debugиrelease - Запуск собранного бинарника
- Очистка результатов сборки
- Генерация минимального шаблона C-проекта
Установка
Автоматическая установка(Рекомендуется)
GNU/Linux
curl -L dcr.zov.tatar | bash
Самостоятельная установка
git clone https://github.com/dexoron/dcr.git "~/.local/share/dcr"
chmod +x "~/.local/share/dcr/dcr"
ln -sf ~/.local/share/dcr/dcr ~/.local/bin
Быстрый старт
Создать новый проект:
dcr new hello
Или инициализировать текущую директорию (директория должна быть пустой):
dcr init
Структура проекта:
hello/
- src/
- - main.c
- dcr.toml
Сборка и запуск проекта:
dcr run или dcr run --release - для сбрки с оптимизацией
Команды
dcr new <name>
Создает проект в текущей директории с указанным именем.
dcr init
Создает проект в текущей директории. Имя проекта будет равно имени директории. Директория должна быть пустой.
dcr build [profile]
Собирает проект. Если профиль не указан, используется --debug.
dcr run [profile]
Собирает проект и запускает бинарник. Если профиль не указан, используется --debug.
Запуск вручную:
./target/<profile>/main
dcr clean
Удаляет папку target в корне проекта.
Профили сборки
Поддерживаются два профиля:
--debug(по умолчанию) — флаги:-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG--release— флаги:-O3 -DNDEBUG -march=native
Конфигурация
Основной файл проекта — dcr.toml. Сейчас он создается автоматически и служит точкой входа для будущих настроек.
Пример dcr.toml:
[package]
name = "hello"
version = "0.1.0"
language = "c"
compiler = "clang"
[dependencies]
Установка в PATH
Чтобы вызывать dcr из любой директории, можно сделать symlink в ~/.local/bin:
ln -s "$PWD/dcr" ~/.local/bin/dcr
Убедитесь, что ~/.local/bin находится в PATH.
Пример проекта
src/main.c содержит минимальный Hello, World!:
#include <stdio.h>
int main(void) {
puts("Hello, World!");
return 0;
}
Требования
- C-компилятор (например,
gccилиclang) - Python 3.14.2 (для текущей версии DCR)
- uv (менеджер проекта для Python)
Статус и планы
Проект в стадии MVP. Планируется переписывание на более подходящий язык и расширение функциональности:
- более гибкая конфигурация через
dcr.toml - расширяемые профили сборки
- менеджер пакетов
Лицензия
См. файл LICENSE.