# CMake最低版本 cmake_minimum_required(VERSION 3.21) # 工程名、版本号、工程描述 project(Compiler VERSION 0.1 DESCRIPTION "ST / toml 编译器") # 词法、语法、符号表、类型检查、codegen、链接都留在 compiler 一个库里 # 指令 opcode / 类型 / FB 布局来自 machine.toml(MachineConfig),不依赖 isa add_library(compiler STATIC ./src/Lexer.cpp ./src/Project.cpp ./src/Parser.cpp ./src/Linker.cpp ./src/Typecheck.cpp ./src/Codegen.cpp ./src/MachineConfig.cpp ./src/Stb.cpp ./src/Codec.cpp ./src/TypeInfo.cpp) target_include_directories(compiler PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_include_directories(compiler PRIVATE ${CMAKE_SOURCE_DIR}/third_party/tomlplusplus/include) # 可执行入口:STCompiler -o .stb add_executable(STCompiler ./src/main.cpp) target_link_libraries(STCompiler PRIVATE compiler)