# 移除 ANTLR 代码生成相关配置 # list(APPEND CMAKE_MODULE_PATH "${ANTLR_RUNTIME}/cmake") # include(FindANTLR) # antlr_target(SysYGen SysY.g4 # LEXER PARSER # OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} # VISITOR # ) # 移除 SysYParser 库的构建(如果不需要独立库) # add_library(SysYParser SHARED ${ANTLR_SysYGen_CXX_OUTPUTS}) # target_include_directories(SysYParser PUBLIC ${ANTLR_RUNTIME}/runtime/src) # target_link_libraries(SysYParser PUBLIC antlr4_shared) # 构建 sysyc 可执行文件,使用手动提供的 SysYLexer.cpp、SysYParser.cpp 等文件 add_executable(sysyc sysyc.cpp SysYLexer.cpp # 手动提供的文件 SysYParser.cpp # 手动提供的文件 SysYVisitor.cpp # 手动提供的文件 IR.cpp SysYIRGenerator.cpp SysYIRPrinter.cpp SysYIROptPre.cpp SysYIRAnalyser.cpp # DeadCodeElimination.cpp AddressCalculationExpansion.cpp # Mem2Reg.cpp # Reg2Mem.cpp RISCv64Backend.cpp RISCv64ISel.cpp RISCv64RegAlloc.cpp RISCv64AsmPrinter.cpp RISCv64Passes.cpp ) # 设置 include 路径,包含 ANTLR 运行时库和项目头文件 target_include_directories(sysyc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include # 项目头文件目录 ${ANTLR_RUNTIME}/runtime/src # ANTLR 运行时库头文件 ) # 保留 ANTLR 运行时库的链接 target_link_libraries(sysyc PRIVATE antlr4_shared) # 保留其他编译选项 target_compile_options(sysyc PRIVATE -frtti) # 可选:线程支持(如果需要,取消注释) # set(THREADS_PREFER_PTHREAD_FLAG ON) # find_package(Threads REQUIRED) # target_link_libraries(sysyc PRIVATE Threads::Threads)