cmake_minimum_required(VERSION 3.0)
project(OpenGazeExe VERSION 1.0)

set(OPENGAZE_DIR "$ENV{HOME}/OpenGaze")

add_definitions(-DOPENGAZE_DIR="${CMAKE_SOURCE_DIR}")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/)

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(CMAKE_CXX_STANDARD 11)

find_package( OpenCV 3.1 REQUIRED COMPONENTS calib3d highgui objdetect imgproc core)

# Boost, for reading configuration file
find_package(Boost 1.5 COMPONENTS system filesystem timer thread program_options REQUIRED)
set(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR} ${Boost_INCLUDE_DIR}/boost)

include_directories(/usr/local/include/opengaze /usr/local/cuda/include  ${OpenCV_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
link_directories(/usr/lib /usr/local/lib /usr/local/cuda/lib64 ${Boost_LIBRARY_DIRS} ${OPENGAZE_DIR}/3rdParty)

## -lX11 is for getting screen resolution in pixel in the Linux system
set(LIBS opengaze LandmarkDetector ${OpenCV_LIBS} ${Boost_LIBRARIES} tbb openblas dlib lmdb glog caffe X11)

add_executable(GazeVisualization GazeVisualization.cpp)
target_link_libraries(GazeVisualization ${LIBS})

add_executable(Calibration Calibration.cpp)
target_link_libraries(Calibration ${LIBS})

add_executable(GazeEstimation GazeEstimation.cpp)
target_link_libraries(GazeEstimation ${LIBS})

add_executable(DataExtraction DataExtraction.cpp)
target_link_libraries(DataExtraction ${LIBS})