##################################################
###              MACRO DEFINITION              ###
##################################################

MACRO( SUBDIRLIST RESULT_DIR_LST CURRENT_DIR )
	FILE (
		GLOB ENTRIES_LST
		RELATIVE ${CURRENT_DIR}
		${CURRENT_DIR}/*
	)

	SET ( DIR_LST "" )

	FOREACH ( ENTRY ${ENTRIES_LST} )
		IF( IS_DIRECTORY ${CURRENT_DIR}/${ENTRY} )
			LIST( APPEND DIR_LST ${ENTRY} )
		ENDIF()
	ENDFOREACH()

	SET( ${RESULT_DIR_LST} ${DIR_LST} )
ENDMACRO()

##################################################
###            BUILD SUBDIRECTORIES            ###
##################################################

##################################################
# CURRENT FOLDER

SET( CURRENT_DIR  ${CMAKE_CURRENT_LIST_DIR} )

##################################################
# LIST SUBDIRECTORIES

SUBDIRLIST( SUB_DIR_LST ${CURRENT_DIR} )

##################################################
# BUILD EACH ONE

SET ( CMAKE_INCLUDE_CURRENT_DIR ON )
SET ( CMAKE_AUTOMOC ON )
SET ( CMAKE_AUTOUIC ON )  

FOREACH ( DIRECTORY ${SUB_DIR_LST} )
	
	#*********************************************
	# SET THE TARGET TARGET NAME

	SET ( TARGET_NAME ${DIRECTORY} )

	#*********************************************
	# LIST ALL ITS SOURCES

	FILE (
		GLOB_RECURSE
		TARGET_SOURCES_LST
		${CURRENT_DIR}/${DIRECTORY}/*.cpp
		${CURRENT_DIR}/${DIRECTORY}/*.hpp
		${CURRENT_DIR}/${DIRECTORY}/*.hxx
		${CURRENT_DIR}/${DIRECTORY}/*.h
	)

	#*********************************************
	# ADD EXECUTABLE

	ADD_EXECUTABLE (
		${TARGET_NAME}
		${TARGET_SOURCES_LST}
	)

	#*********************************************
	# LINK EXECUTABLE

	TARGET_LINK_LIBRARIES (
		${TARGET_NAME}
		${LIBRARIES_LIST}
		TobiiSDK
	)

	#*********************************************
	# OUTPUT DIRECTORY

	SET_TARGET_PROPERTIES (
		${TARGET_NAME}
    	PROPERTIES
    	RUNTIME_OUTPUT_DIRECTORY ${BUILD_BINARIES_DIR}
	)

ENDFOREACH()

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