Files
dcr/README.md

4.4 KiB
Raw Permalink Blame History

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.