# DCR (Dexoron Cargo Realization) DCR — это утилита для управления проектами на C. Она задает единый формат проекта, дает команды для создания, сборки и запуска, и использует один конфигурационный файл `dcr.toml`. Проект находится на стадии MVP. Текущая реализация написана на Python и в будущем будет переписана. ## Зачем DCR - Единая структура проекта без ручной настройки - Простые команды для типовых задач - Прозрачная компиляция и предсказуемые профили сборки ## Возможности - Создание нового проекта или инициализация текущей директории - Сборка проекта в профилях `debug` и `release` - Запуск собранного бинарника - Генерация минимального шаблона C-проекта ## Быстрый старт Создать новый проект: `dcr new hello` Или инициализировать текущую директорию (директория должна быть пустой): `dcr init` Структура проекта: ``` hello/ - src/ - - main.c - dcr.toml ``` ## Команды ### `dcr new ` Создает проект в текущей директории с указанным именем. ### `dcr init` Создает проект в текущей директории. Имя проекта будет равно имени директории. Директория должна быть пустой. ### `dcr build [profile]` Собирает проект. Если профиль не указан, используется `--debug`. ### `dcr run [profile]` Собирает проект и запускает бинарник. Если профиль не указан, используется `--debug`. Запуск вручную: `./target//main` ## Профили сборки Поддерживаются два профиля: - `--debug` (по умолчанию) — флаги: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG` - `--release` — флаги: `-O3 -DNDEBUG -march=native` ## Конфигурация Основной файл проекта — `dcr.toml`. Сейчас он создается автоматически и служит точкой входа для будущих настроек. ## Пример проекта `src/main.c` содержит минимальный `Hello, World!`: ```c #include int main(void) { puts("Hello, World!"); return 0; } ``` ## Требования - C-компилятор (например, `gcc` или `clang`) - Python 3.14.2 (для текущей версии DCR) - uv (менеджер проекта для Python) ## Статус и планы Проект в стадии MVP. Планируется переписывание на более подходящий язык и расширение функциональности: - более гибкая конфигурация через `dcr.toml` - расширяемые профили сборки - менеджер пакетов ## Лицензия См. файл `LICENSE`.