cmake_minimum_required(VERSION 3.25) project(plasmatum) set(CMAKE_CXX_STANDARD 23) set(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src) set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) find_package(FLEX REQUIRED) find_package(BISON REQUIRED) BISON_TARGET(parser ${CMAKE_SOURCE_DIR}/parser.yy ${SOURCE_DIR}/parser.gen.cpp DEFINES_FILE ${INCLUDE_DIR}/parser.gen.h) FLEX_TARGET(lexer ${CMAKE_SOURCE_DIR}/lexer.ll ${SOURCE_DIR}/lexer.gen.cpp) ADD_FLEX_BISON_DEPENDENCY(lexer parser) file(GLOB_RECURSE sources ${SOURCE_DIR}/*.cpp) set(sources ${sources} ${FLEX_lexer_OUTPUTS}) set(sources ${sources} ${BISON_parser_OUTPUT_SOURCE}) include_directories(${CMAKE_SOURCE_DIR}/include) add_executable(plsm ${sources})