cmake_minimum_required(VERSION 3.10)
project(get_pdb)

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(get_pdb_lexer
	    get_pdb.ll
            ${CMAKE_CURRENT_BINARY_DIR}/get_pdb_yy.lex.cc
	    COMPILE_FLAGS " -Pget_pdb_yy "
	)

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

list(APPEND EXTRA_LIBS Twp Psed Sarp Afn Gsq Blst Alex Aln Pdb Tools Tax Vsi Chn)

get_filename_component(PARENT_DIR ../ ABSOLUTE)
list(APPEND EXTRA_INCLUDES
        "${PARENT_DIR}/lib/libafn"
        "${PARENT_DIR}/lib/libgsq"
        "${PARENT_DIR}/lib/libaln"
        "${PARENT_DIR}/lib/libtax"
        "${PARENT_DIR}/lib/libalex"
        "${PARENT_DIR}/lib/libtools"
        "${PARENT_DIR}/lib/libpdb"
        "${PARENT_DIR}/lib/libchn"
        "${PARENT_DIR}/lib/libvsi"
        "${PARENT_DIR}/lib/libsarp"
        "${PARENT_DIR}/lib/libpsed"
        "${PARENT_DIR}/lib/libtwp"
        "${PARENT_DIR}/lib/include"
	)

#add_executable(get_pdb get_pdb.lex.cc ${FLEX_get_pdb_lexer_OUTPUTS})
add_executable(get_pdb ${FLEX_get_pdb_lexer_OUTPUTS})
target_link_libraries(get_pdb ${EXTRA_LIBS} ${FLEX_LIBRARIES} )

# include_directories(${PARENT_DIR}/lib/include ${EXTRA_INCLUDES})
target_include_directories(get_pdb 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} "${CMAKE_CURRENT_BINARY_DIR}" ${EXTRA_INCLUDES}) 

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

#install(TARGETS Vsi DESTINATION lib EXPORT VsiTargets)

