# Generate lexer and parser with 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 ) add_library(SysYParser SHARED ${ANTLR_SysYGen_CXX_OUTPUTS}) target_include_directories(SysYParser PUBLIC ${ANTLR_RUNTIME}/runtime/src) target_link_libraries(SysYParser PUBLIC antlr4_shared) add_executable(sysyc sysyc.cpp IR.cpp SysYIRGenerator.cpp # Backend.cpp SysYIRPrinter.cpp RISCv32Backend.cpp ) target_include_directories(sysyc PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_options(sysyc PRIVATE -frtti) target_link_libraries(sysyc PRIVATE SysYParser) # set(THREADS_PREFER_PTHREAD_FLAG ON) # find_package(Threads REQUIRED) # target_link_libraries(sysyc PRIVATE Threads::Threads)