cmake_minimum_required(VERSION 3.10)
project(convert_msa)

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(convert_msa_lexer
	    convert_msa.ll
            ${CMAKE_CURRENT_BINARY_DIR}/convert_msa_yy.lex.cc
	    COMPILE_FLAGS " -Pconvert_msa_yy "
	)

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

#list(APPEND EXTRA_LIBS Afn Gsq Blst Alex Aln Tools )
list(APPEND EXTRA_LIBS Afn Gsq Alex Aln Chn Hpt Gsmo )

get_filename_component(PARENT_DIR ../ ABSOLUTE)
list(APPEND EXTRA_INCLUDES
        "${PARENT_DIR}/lib/libafn"
        "${PARENT_DIR}/lib/libblst"
        "${PARENT_DIR}/lib/libalex"
        "${PARENT_DIR}/lib/libhpt"
        "${PARENT_DIR}/lib/libchn"
        "${PARENT_DIR}/lib/libaln"
        "${PARENT_DIR}/lib/libtools"
        "${PARENT_DIR}/lib/libgsmo"
        "${PARENT_DIR}/lib/include"
	)

#add_executable(convert_msa convert_msa.lex.cc ${FLEX_convert_msa_lexer_OUTPUTS})
add_executable(convert_msa ${FLEX_convert_msa_lexer_OUTPUTS})
target_link_libraries(convert_msa ${EXTRA_LIBS} ${FLEX_LIBRARIES} )

# include_directories(${PARENT_DIR}/lib/include ${EXTRA_INCLUDES})
target_include_directories(convert_msa 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 convert_msa PROPERTY VERSION "1.0.0")
#set_property(TARGET convert_msa PROPERTY SOVERSION "1")

#install(TARGETS Vsi DESTINATION lib EXPORT VsiTargets)

