29 lines
708 B
CMake
29 lines
708 B
CMake
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})
|