cmake_minimum_required (VERSION 2.6 FATAL_ERROR)
if( COMMAND cmake_policy )
	cmake_policy( SET CMP0003 NEW )
endif(COMMAND cmake_policy )
project( Protocols )
set(QT_MIN_VERSION "4.6.0")

if ( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} )
	set(QUTIM_PATH "" CACHE FILEPATH "Path to qutim sources")
	set(QUTIM_BINARY_DIR "" CACHE FILEPATH "Path to qutim build directory")
	set(QUTIM_LIBRARY QUTIM_LIBRARY-NOTFOUND CACHE FILEPATH "Path to qutim library")
endif ( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} )
if( QUTIM_BINARY_DIR )
	set( QUTIM_INCLUDE_DIR ${QUTIM_BINARY_DIR}/libqutim/include )
	set( QUTIM_LIBRARY_DIR ${QUTIM_BINARY_DIR}/libqutim/ )
endif( QUTIM_BINARY_DIR )

LIST (APPEND CMAKE_MODULE_PATH "cmake")
LIST (APPEND CMAKE_MODULE_PATH "${QUTIM_PATH}/cmake")

INCLUDE (MacroEnsureVersion)
find_package(Qt4 COMPONENTS QtCore QtGui QtNetwork)
if ( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} )
	set(QUTIM_PATH "" CACHE FILEPATH "Path to qutim sources")
	set(QUTIM_BINARY_DIR "" CACHE FILEPATH "Path to qutim build directory")
	set(QUTIM_LIBRARY QUTIM_LIBRARY-NOTFOUND CACHE FILEPATH "Path to qutim library")
endif ( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} )
if( QUTIM_BINARY_DIR )
	set( QUTIM_INCLUDE_DIR ${QUTIM_BINARY_DIR}/libqutim/include )
	set( QUTIM_LIBRARY_DIR ${QUTIM_BINARY_DIR}/libqutim/ )
endif( QUTIM_BINARY_DIR )

LIST (APPEND CMAKE_MODULE_PATH "cmake")
LIST (APPEND CMAKE_MODULE_PATH "${QUTIM_PATH}/cmake")
find_package( QutIM REQUIRED )

file( GLOB PROTOCOLS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/" "${CMAKE_CURRENT_SOURCE_DIR}/*" )

foreach( PROTOCOL ${PROTOCOLS} )
	if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}/CMakeLists.txt" )
		string( TOUPPER ${PROTOCOL} PROTOCOL_NAME)
		option( ${PROTOCOL_NAME} "" ON )
		if( ${PROTOCOL_NAME} )
			message( "+ protocol '${PROTOCOL_NAME}' added to build" )
			add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}" "${CMAKE_CURRENT_BINARY_DIR}/${PROTOCOL}" ) 
		else( ${PROTOCOL_NAME} )
			message( "- protocol '${PROTOCOL_NAME}' will be skipped" )
		endif( ${PROTOCOL_NAME} )
	endif( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}/CMakeLists.txt" )
endforeach( PROTOCOL )

