Files
dcr/AGENT.md
Dexoron 0193834bfd feat: Enhance dependency management and project setup
- 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.
2026-05-13 19:24:53 +08:00

78 lines
2.4 KiB
Markdown

# 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](https://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**: `RegistryManager` handles 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
```bash
cargo build --release
./target/release/dcr setup
```
## Code Conventions
- Rust stable edition 2024.
- `cargo fmt` and `cargo clippy -- -D warnings`.
- CLI output in English.
- Use `utils::log` for messaging.