Program Listing for File CMakeLists.txt¶
↰ Return to documentation for file (src/CMakeLists.txt)
cmake_minimum_required(VERSION 3.10)
set(BIN_NAME code_generator)
project(${BIN_NAME})
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
IF(APPLE)
set(REFLEX_LIB "/usr/local/lib/libreflex.a")
set(REFLEX_INCLUDE "/usr/local/include/reflex")
set(REFLEX reflex)
ELSE(APPLE)
set(REFLEX_LIB "/home/faculty/michal/classes/cis461/RE-flex/lib/libreflex.a")
set(REFLEX_INCLUDE "/home/faculty/michal/classes/cis461/RE-flex/include")
set(REFLEX "/home/faculty/michal/classes/cis461/RE-flex/bin/reflex")
link_directories("/home/users/zayd/boost_1_68_0/stage/lib")
ENDIF(APPLE)
# Run re-Flex
add_custom_command(
COMMAND ${REFLEX} --bison-cc --bison-locations --header-file ${CMAKE_CURRENT_SOURCE_DIR}/quack.lxx
OUTPUT lex.yy.cpp lex.yy.h
DEPENDS quack.lxx quack.tab.hxx
)
# Run Bison
add_custom_command(
COMMAND bison -d -v ${CMAKE_CURRENT_SOURCE_DIR}/quack.yxx --report-file=debug.output
OUTPUT quack.tab.cxx quack.tab.hxx location.hh position.hh stack.hh
DEPENDS quack.yxx
)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${REFLEX_INCLUDE}
${CMAKE_CURRENT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)
add_executable(${BIN_NAME}
main.cpp
quack_program.h
quack_class.h quack_class.cpp
quack_param.h quack_param.cpp
quack_field.h
lex.yy.h lex.yy.cpp quack.tab.cxx
messages.h messages.cpp
ASTNode.h ASTNode.cpp
type_checker.h
symbol_table.h
initialized_list.h
exceptions.h
compiler_utils.h
code_generator.h
code_gen_utils.h)
target_link_libraries(${BIN_NAME} ${REFLEX_LIB})