##################################################
###               INCIA PROTHESE               ###
##################################################

CMAKE_MINIMUM_REQUIRED( VERSION 3.2 )

SET ( CMAKE_MACOSX_RPATH 1 )
SET ( CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ )

PROJECT( Matching )

##################################################
###               PROJECT VERSION              ###
##################################################

SET( ${PROJECT_NAME}_VERSION_MAJOR 0 )
SET( ${PROJECT_NAME}_VERSION_MINOR 1 )

##################################################
###             COLORS FOR PRINTING            ###
##################################################

IF( NOT WIN32 )
	STRING(ASCII 27 Esc)
	SET( ColourReset "${Esc}[m"		)
	SET( ColourBold  "${Esc}[1m"	)
	SET( Red         "${Esc}[31m"	)
	SET( Green       "${Esc}[32m"	)
	SET( Yellow      "${Esc}[33m"	)
	SET( Blue        "${Esc}[34m"	)
	SET( Magenta     "${Esc}[35m"	)
	SET( Cyan        "${Esc}[36m"	)
	SET( White       "${Esc}[37m"	)
	SET( BoldRed     "${Esc}[1;31m"	)
	SET( BoldGreen   "${Esc}[1;32m"	)
	SET( BoldYellow  "${Esc}[1;33m"	)
	SET( BoldBlue    "${Esc}[1;34m"	)
	SET( BoldMagenta "${Esc}[1;35m"	)
	SET( BoldCyan    "${Esc}[1;36m"	)
	SET( BoldWhite   "${Esc}[1;37m"	)
ENDIF()

##################################################
###                 DIRECTORIES                ###
##################################################

# LIBRARIES SEARCH PATH:
SET( ROOT_DIR ${CMAKE_CURRENT_LIST_DIR} )

# SOURCES DIRECTORIES
SET( SOURCES_DIR			${ROOT_DIR}				)
SET( SOURCES_LIBRARIES_DIR	${ROOT_DIR}/Libraries	)

# BUILD DIRECTORIES
SET( BUILD_DIR   			${ROOT_DIR}/../Build	)
SET( BUILD_BINARIES_DIR		${BUILD_DIR}/Binaries	)
SET( BUILD_INCLUDES_DIR		${BUILD_DIR}/Includes	)
SET( BUILD_LIBRARIES_DIR	${BUILD_DIR}/Libraries	)

# CREATE BUILD DIRECTORIESc
FILE( MAKE_DIRECTORY ${BUILD_DIR}			)
FILE( MAKE_DIRECTORY ${BUILD_BINARIES_DIR}	)
FILE( MAKE_DIRECTORY ${BUILD_INCLUDES_DIR}	)
FILE( MAKE_DIRECTORY ${BUILD_LIBRARIES_DIR}	)

##################################################
###                 DEFINITIONS                ###
##################################################

ADD_DEFINITIONS(
	-std=c++11
	-pthread
	-g
	${Caffe_DEFINITIONS}
)

##################################################
###                  LIBRARIES                 ###
##################################################

# DEPENDANCES:
FIND_PACKAGE( OpenCV		REQUIRED )
FIND_PACKAGE( Qt5Core		REQUIRED )
FIND_PACKAGE( Qt5Widgets	REQUIRED )
FIND_PACKAGE( Qt5Gui		REQUIRED )
FIND_PACKAGE( Boost COMPONENTS filesystem system REQUIRED )
FIND_PACKAGE( Protobuf		REQUIRED )
#FIND_PACKAGE( Glog			REQUIRED )

SET( CAFFE_ROOT ${ROOT_DIR}/../../CaffeToolbox/caffe-master )

# LIBRARIES SEARCH PATH:
LINK_DIRECTORIES (
	# System folders:
	/usr/lib
	/usr/local/lib
	# caffe
	${CAFFE_ROOT}/build/lib
	# Build by this project:
	${BUILD_LIBRARIES_DIR}
	# boost
	${Boost_LIBRARY_DIR}
)

# LIBRARIES LIST:
SET (
	LIBRARIES_LIST
	# Regular libraries
	Qt5::Core
	Qt5::Widgets
	# OpenCV
	${OpenCV_LIBS}
	# caffe
	caffe
	# boost
	${Boost_LIBRARIES}
	${PROTOBUF_LIBRARIES}
	glog
	#${Glog_LIBRARIES}
	#boost_program_options
	# Subdirectories then apped to this global list
)

# Qt AUTOMATIC FILE GENERATION:
SET ( CMAKE_INCLUDE_CURRENT_DIR ON )
SET ( CMAKE_AUTOMOC ON )
SET ( CMAKE_AUTOUIC ON )

##################################################
###                   INCLUDES                 ###
##################################################

# HEAD SEARCH PATH:
INCLUDE_DIRECTORIES (
	# Build by this project:
	${BUILD_INCLUDES_DIR}
	# OpenCV
	${OpenCV_INCLUDE_DIRS}
	# Qt 5
	${Qt5Core_INCLUDE_DIRS}
	${Qt5Widgets_INCLUDE_DIRS}
	# caffe
	${CAFFE_ROOT}/include
	${CAFFE_ROOT}/build/src
	# boost
	${Boost_INCLUDE_DIRS}
	${PROTOBUF_INCLUDE_DIRS}
	#${Glog_INCLUDE_DIRS}
	# cuda
	/usr/local/cuda/include
)

##################################################
###           BUILD EXTERNAL LIBRARIES         ###
##################################################

ADD_SUBDIRECTORY( ${SOURCES_LIBRARIES_DIR}/rapidjson )
ADD_SUBDIRECTORY( ${SOURCES_LIBRARIES_DIR}/spline	 )

##################################################
###           BUILD INTERNAL LIBRARIES         ###
##################################################

ADD_SUBDIRECTORY( ${SOURCES_DIR}/TobiiSDK )

##################################################
###                BUILD BINARIES             ###
##################################################

ADD_SUBDIRECTORY( ${SOURCES_DIR}/Binaries )

##################################################
