cmake_minimum_required(VERSION 2.6.4 FATAL_ERROR)

find_package(FLEX)
find_package(BISON 2.4)

set(BISON_FLEX_OUT ${CMAKE_CURRENT_SOURCE_DIR}/src/parser/bison_flex_out)

if(BISON_FOUND AND FLEX_FOUND)
    file(MAKE_DIRECTORY ${BISON_FLEX_OUT})

    bison_target(Parser src/parser/parser.yy ${BISON_FLEX_OUT}/parser.cpp)
    flex_target(Scanner src/parser/lexer.lex ${BISON_FLEX_OUT}/lexer.cpp)
    add_flex_bison_dependency(Scanner Parser)
endif()

if(WIN32)
  set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DWIN32")
  set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -DWIN32 -O3")
else()
  set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG -g")
  set(CMAKE_CXX_FLAGS_RELEASE "-Wall -DNDEBUG -O3")
endif()

include_directories(src/)

file(GLOB_RECURSE SRCS "src/*.cpp" "src/*.h")

add_library(b-script STATIC
        ${SRCS}
        ${BISON_Parser_OUTPUTS}
        ${FLEX_Scanner_OUTPUTS}
    )

add_subdirectory(tests)
