建立 StScan CMake 工程,并在 cmake 中规定 C11/C++11。

顶层挂上四个模块目录,语言标准集中在 Standards.cmake。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-18 16:51:51 +08:00
co-authored by Cursor
parent 50b0456198
commit 89f99e65e8
4 changed files with 30 additions and 5 deletions
+15
View File
@@ -0,0 +1,15 @@
# CMake最低版本
cmake_minimum_required(VERSION 3.21)
# 工程名、版本号、工程描述
project(StScan
VERSION 0.1
DESCRIPTION "子集 ST 编译为寄存器 VM,按扫描周期执行"
LANGUAGES C CXX)
include("${CMAKE_SOURCE_DIR}/cmake/Standards.cmake")
add_subdirectory(isa)
add_subdirectory(compiler)
add_subdirectory(vm)
add_subdirectory(host)
+2 -2
View File
@@ -1,6 +1,6 @@
# 子集 ST + 寄存器 VM
# StScan
IEC 风格的子集 ST:用 `project.toml` 组织多个 `.st`,编译成单一映像,由寄存器虚拟机按扫描周期执行。
子集 ST + 扫描周期虚拟机。IEC 风格的子集 ST:用 `project.toml` 组织多个 `.st`,编译成单一映像,由寄存器虚拟机按扫描周期执行。
方案见 [`Doc/初步计划.md`](Doc/初步计划.md)。
+5 -3
View File
@@ -1,7 +1,9 @@
# cmake
顶层 CMake 的辅助脚本,**不是**业务模块。
顶层 CMake 的辅助脚本,**不是**业务模块。由根目录 `CMakeLists.txt``project()` 之后 `include()`
放警告选项、C++ 标准、输出目录等共用片段,由根目录 `CMakeLists.txt` `include()`。不要按词法、VM、host 再拆成业务 CMake module。
| 文件 | 内容 |
|---|---|
| `Standards.cmake` | C11、C++11`STANDARD_REQUIRED`;关闭 GNU 扩展 |
第一版尽量少文件;没有共用逻辑时本目录可以为空
不要按词法、VM、host 再拆成业务 CMake module。改语言标准只改本目录,不要在各子目录再 `set(CMAKE_CXX_STANDARD …)`
+8
View File
@@ -0,0 +1,8 @@
# C / C++ 语言标准。在 project() 之后 include,对后续目标生效。
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)