From 81cf8b68eca2636574f3d0a9fa1cf0b428c163e9 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sat, 1 Aug 2026 04:30:34 +0800 Subject: [Backend] Establish standalone build infrastructure Add the thin monorepo CMake entry point and an independently configurable backend project. Enforce the Clang/C++23 toolchain, expose Make/Ninja-neutral tests and developer checks, export an installable RCCBackend package, and introduce the first Support error abstraction. --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9ab0765..19f6a44 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,46 @@ # RCC Project -Welcome to the RCC Project! +RCC is a compiler collection under active development. The current implementation +focuses on a standalone machine-code backend. -The RCC Project is free software. See the file LICENSE -for copying permission. +## Repository layout -This project aims to build a highly optimized compiler collection. -Obviously, its name comes from GNU Compiler Collection (GCC). +```text +backend/ Standalone backend project +cmake/ Monorepo orchestration support +docs/ Architecture and implementation records +``` -The development of RCC is ongoing. Your contribution is welcome. +Future frontend, middle-end, and driver projects will be sibling components. +## Build the enabled projects + +RCC requires Clang and C++23. Both Ninja and Unix Makefiles are supported. + +```bash +cmake -S . -B build -G Ninja \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DRCC_ENABLE_PROJECTS=backend +cmake --build build +ctest --test-dir build --output-on-failure +``` + +## Build the backend independently + +```bash +cmake -S backend -B build-backend -G Ninja \ + -DCMAKE_CXX_COMPILER=clang++ +cmake --build build-backend +ctest --test-dir build-backend --output-on-failure +``` + +Replace `Ninja` with `Unix Makefiles` to build with Make. + +Developer checks are exposed as `rcc-backend-format-check`, +`rcc-backend-tidy`, and `rcc-backend-analyze` in a standalone backend build. +The monorepo exposes the aggregate `format-check`, `tidy`, and `analyze` +targets. + +## License + +RCC is free software distributed under GPL-3.0-or-later. See `LICENSE`. -- cgit v1.2.3