aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 04:30:34 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 04:30:34 +0800
commit81cf8b68eca2636574f3d0a9fa1cf0b428c163e9 (patch)
treef3a83496e71358123cc5f838269dc134d02b63f6 /CMakeLists.txt
parent72af0dedf9e18911da65b9a5c4906689e868d9fc (diff)
downloadrcc-project-81cf8b68eca2636574f3d0a9fa1cf0b428c163e9.tar.gz
rcc-project-81cf8b68eca2636574f3d0a9fa1cf0b428c163e9.tar.xz
[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.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..597963a
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+cmake_minimum_required(VERSION 3.25)
+
+project(
+ RCC
+ VERSION 0.1.0
+ DESCRIPTION "RCC compiler collection"
+ LANGUAGES CXX
+)
+
+list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
+
+include(RCCPreventInSourceBuild)
+include(RCCProjects)
+include(CTest)
+
+rcc_add_enabled_projects("${CMAKE_CURRENT_SOURCE_DIR}")
+
+if(TARGET rcc-backend-format)
+ add_custom_target(format DEPENDS rcc-backend-format)
+endif()
+
+if(TARGET rcc-backend-format-check)
+ add_custom_target(format-check DEPENDS rcc-backend-format-check)
+endif()
+
+if(TARGET rcc-backend-tidy)
+ add_custom_target(tidy DEPENDS rcc-backend-tidy)
+endif()
+
+if(TARGET rcc-backend-analyze)
+ add_custom_target(analyze DEPENDS rcc-backend-analyze)
+endif()