mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 13:18:29 +00:00
- Added support for registry-based dependencies in the dependencies section. - Updated the package section to include a project type field. - Introduced a new CLI command `dcr setup` to load and display registry configurations. - Implemented a new module for handling registry operations, including loading and resolving packages from registries. - Enhanced the build process to handle library packaging, including copying headers and libraries to the appropriate target directories. - Updated the CLI to support building library packages and added tests for library package builds. - Improved error handling and output messages during dependency resolution and package fetching.
2.4 KiB
2.4 KiB
AGENT.md
Project Overview
DCR (Dexoron Cargo Realization) — CLI tool for managing C/C++/ASM projects in a Cargo-style.
- Implementation Language: Rust (edition 2024)
- License: MIT
- Repository: github.com/dexoron/dcr
Architecture
Source Tree (src/)
src/
├── main.rs # Entry point, CLI command routing
├── config.rs # Global constants
├── cli/ # CLI command implementation
│ ├── new.rs # dcr new <name>
│ ├── init.rs # dcr init
│ ├── setup.rs # dcr setup (registry initialization)
│ ├── add.rs # dcr add <name>
│ ├── build.rs # dcr build
│ ├── run.rs # dcr run
│ ├── clean.rs # dcr clean
│ ├── help.rs # dcr --help
│ └── flag_update.rs # dcr --update
├── core/ # Business logic
│ ├── config.rs # dcr.toml parsing
│ ├── registry.rs # Package index management (RegistryManager)
│ ├── deps/ # Dependency resolution (path, git)
│ ├── runner.rs # Binary execution
│ ├── workspace.rs # [workspace] support
│ └── builder/ # Compiler backends (gcc, clang, msvc, nasm, gas)
├── platform/ # Platform-specific logic
└── utils/ # Helper utilities
Key Concepts
~/.dcr/: Centralized storage for registries and configurations.config.toml: File in~/.dcr/defining available package indices and their priorities.dcr.toml: Local project configuration.- Registry System:
RegistryManagerhandles package discovery across multiple indices based on priority.
Supported Platforms
| Platform | Target triple |
|---|---|
| Linux | x86_64-unknown-linux-gnu |
| macOS Intel | x86_64-apple-darwin |
| macOS ARM | aarch64-apple-darwin |
| Windows | x86_64-pc-windows-msvc |
Dependencies (Cargo)
| Crate | Purpose |
|---|---|
reqwest |
HTTP requests |
serde |
Serialization |
toml |
Configuration parsing |
git2 |
Git dependency handling |
Development
Build & Run
cargo build --release
./target/release/dcr setup
Code Conventions
- Rust stable edition 2024.
cargo fmtandcargo clippy -- -D warnings.- CLI output in English.
- Use
utils::logfor messaging.