建立 StScan CMake 工程,并在 cmake 中规定 C11/C++11。
顶层挂上四个模块目录,语言标准集中在 Standards.cmake。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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)
|
||||
@@ -1,6 +1,6 @@
|
||||
# 子集 ST + 寄存器 VM
|
||||
# StScan
|
||||
|
||||
IEC 风格的子集 ST:用 `project.toml` 组织多个 `.st`,编译成单一映像,由寄存器虚拟机按扫描周期执行。
|
||||
子集 ST + 扫描周期虚拟机。IEC 风格的子集 ST:用 `project.toml` 组织多个 `.st`,编译成单一映像,由寄存器虚拟机按扫描周期执行。
|
||||
|
||||
方案见 [`Doc/初步计划.md`](Doc/初步计划.md)。
|
||||
|
||||
|
||||
+5
-3
@@ -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 …)`。
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user