find_program(LEXESIS_EXE Lexesis PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../build/bin")

add_custom_command(DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/xmllexer.lxs"
    COMMAND ${LEXESIS_EXE} ARGS -d "${CMAKE_CURRENT_BINARY_DIR}" -n XMLLexer "${CMAKE_CURRENT_SOURCE_DIR}/src/xmllexer.lxs"
    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/XMLLexer.h" "${CMAKE_CURRENT_BINARY_DIR}/XMLLexer.cpp"
    )

add_custom_command(DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/attributelexer.lxs"
    COMMAND ${LEXESIS_EXE} ARGS -d "${CMAKE_CURRENT_BINARY_DIR}" -n AttributeLexer "${CMAKE_CURRENT_SOURCE_DIR}/src/attributelexer.lxs"
    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AttributeLexer.h" "${CMAKE_CURRENT_BINARY_DIR}/AttributeLexer.cpp"
    )

include_directories("${CMAKE_CURRENT_BINARY_DIR}")
include_directories(include)

add_executable(highlighter
    EXCLUDE_FROM_ALL
    src/highlighter.cpp
    src/main.cpp
    "${CMAKE_CURRENT_BINARY_DIR}/AttributeLexer.cpp"
    "${CMAKE_CURRENT_BINARY_DIR}/XMLLexer.cpp"
)