cmake_minimum_required(VERSION 3.10)
project(addphylum)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

#=========== flex instructions =================
find_package(FLEX REQUIRED)

FLEX_TARGET(addphylum_lexer
	    addphylum.ll
            ${CMAKE_CURRENT_BINARY_DIR}/addphylum_yy.lex.cc
	    COMPILE_FLAGS " -Paddphylum_yy "
	)

#=========== end flex =================

list(APPEND EXTRA_LIBS Afn )

get_filename_component(PARENT_DIR ../ ABSOLUTE)
list(APPEND EXTRA_INCLUDES
        "${PARENT_DIR}/lib/libafn"
        "${PARENT_DIR}/lib/include"
	)

#add_executable(addphylum addphylum.lex.cc ${FLEX_addphylum_lexer_OUTPUTS})
add_executable(addphylum ${FLEX_addphylum_lexer_OUTPUTS})
target_link_libraries(addphylum ${EXTRA_LIBS} ${FLEX_LIBRARIES} )

# include_directories(${PARENT_DIR}/lib/include ${EXTRA_INCLUDES})
target_include_directories(addphylum PUBLIC ${PROJECT_BINARY_DIR} 
	${FLEX_INCLUDE_DIRS} ${EXTRA_INCLUDES})

# state that anybody linking to us needs to include the current source dir
include_directories(
#	"${PROJECT_SOURCE_DIR}/lib/libafn" "${PROJECT_SOURCE_DIR}/lib/include"
	${PROJECT_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}" ${EXTRA_INCLUDES}) 

# setup the version numbering
#set_property(TARGET addphylum PROPERTY VERSION "1.0.0")
#set_property(TARGET addphylum PROPERTY SOVERSION "1")

#install(TARGETS Vsi DESTINATION lib EXPORT VsiTargets)

