cmake_minimum_required(VERSION 3.0.0)
# CXX=/usr/bin/g++-9

# Setting the ARCH if not provided
if (NOT DEFINED ARCH)
    execute_process(COMMAND uname -m OUTPUT_VARIABLE arch_from_cmd)
    string(STRIP ${arch_from_cmd} arch_from_cmd)
    set(ARCH ${arch_from_cmd})
endif()

# Setting the CMAKE_C_COMPILER if not provided
if (${ARCH} STREQUAL "aarch64")
    if (NOT DEFINED CMAKE_C_COMPILER)
        set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc")
    endif()
else()
    if (NOT DEFINED CMAKE_C_COMPILER)
        message(STATUS "Setting compiler to g++-9")    
        set(CMAKE_C_COMPILER "/usr/bin/gcc-9")
        set(CMAKE_CXX_COMPILER "/usr/bin/g++-9")
    endif()
endif()

message(STATUS "HAILORT_ROOT at: $ENV{HAILORT_ROOT}")
set(HAILORT_LIB $ENV{HAILORT_ROOT}/lib/${ARCH}/libhailort.so.2.2.0)

set(HAILORT_INCLUDE_DIR "$ENV{HAILORT_ROOT}/include")
set(COMPILE_OPTIONS_CPP -Werror -O3 -DNDEBUG  -std=c++11)
include_directories(${HAILORT_INCLUDE_DIR} ./)

find_package(Threads)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
foreach(target runme)
    add_executable(${target} stream_and_info.cpp example_device.cpp main.cpp)
    target_compile_options(${target} PRIVATE ${COMPILE_OPTIONS_CPP})
    target_link_libraries(${target} ${CMAKE_THREAD_LIBS_INIT})
    target_link_libraries(${target} ${HAILORT_LIB})
endforeach(target)
