cmake_minimum_required(VERSION 2.6)

#-----------------------------------------------------------------------------
# Required libraries

# ITK
FIND_PACKAGE(ITK REQUIRED)
IF(ITK_FOUND)
	INCLUDE_DIRECTORIES(${ITK_INCLUDE_DIRS})
	INCLUDE(${ITK_USE_FILE})
ELSE()
	MESSAGE(FATAL_ERROR "ITK not found, but needed.")
ENDIF(ITK_FOUND)


# Qt4
FIND_PACKAGE(Qt4 REQUIRED)
IF(QT4_FOUND)
	INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR})
	INCLUDE(${QT_USE_FILE})	
ELSE()
	MESSAGE(FATAL_ERROR "QT4 not found, but needed.")
ENDIF(QT4_FOUND)

# RITK
FIND_PACKAGE(RITK REQUIRED)
IF(RITK_FOUND)
	INCLUDE_DIRECTORIES(${RITK_INCLUDE_DIR})
	INCLUDE(${RITK_USE_FILE})	
ELSE()
	MESSAGE(FATAL_ERROR "RITK not found, but needed.")
ENDIF(RITK_FOUND)



#-----------------------------------------------------------------------------
# Set headers (HDRS), sources (SRCS), childs of QObject (MOC_HDRS), and Qt ui-files (UIS)

SET(HDRS
	VisualizationKinectPluginFactory.h
	VisualizationKinectPlugin.h
	VisualizationKinectWidget.h
)

SET(SRCS
	VisualizationKinectPluginFactory.cxx
	VisualizationKinectPlugin.cxx
	VisualizationKinectWidget.cxx
)
 
#-----------------------------------------------------------------------------

# Qt
# all childs of qobject have to be put here
SET(MOC_HDRS 	
	VisualizationKinectPluginFactory.h
	VisualizationKinectPlugin.h
	VisualizationKinectWidget.h

)

SET(UIS
	VisualizationKinectWidget.ui

)

QT4_WRAP_UI(UI_HDRS ${UIS})	
QT4_WRAP_CPP(MOC_SRCS ${MOC_HDRS})

#-----------------------------------------------------------------------------

# Set the name for the library
SET(LIBRARY_NAME VisualizationKinectPlugin)

# Set include directories
SET(VisualizationKinect_INCLUDE_DIRS
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_BINARY_DIR}	
	${KINECTIMAGEPLUGIN_INCLUDE_DIRS}
)

SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)


# QT plugin
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_SHARED)
#ADD_DEFINITIONS(-DQT_NO_DEBUG)

# Include directories for the plugin
INCLUDE_DIRECTORIES(
${VisualizationKinect_INCLUDE_DIRS} 
${RITK_INCLUDE_DIRS} 
${QT_QTOPENGL_INCLUDE_DIR}
)

ADD_LIBRARY(
${LIBRARY_NAME} SHARED 
${SRCS} 
${HDRS} 
${MOC_SRCS} 
${UI_HDRS}
)

IF(UNIX)
	TARGET_LINK_LIBRARIES(
		${LIBRARY_NAME}
		debug ${RITK_COMMON_LIBRARY_DEBUG}
		debug ${RITK_CORE_LIBRARY_DEBUG}
		debug ${RITK_VISUALIZATION_LIBRARY_DEBUG}
		optimized ${RITK_COMMON_LIBRARY}
		optimized ${RITK_CORE_LIBRARY}
		optimized ${RITK_VISUALIZATION_LIBRARY}
		${ITK_LIBRARIES} 
		${QT_LIBRARIES} 
		${KINECTIMAGEPLUGIN_LIBRARY}
		GLU
		glut
	)
ENDIF(UNIX)

IF(WIN32)
	TARGET_LINK_LIBRARIES(
		${LIBRARY_NAME}
		debug ${RITK_COMMON_LIBRARY_DEBUG}
		debug ${RITK_CORE_LIBRARY_DEBUG}
		debug ${RITK_VISUALIZATION_LIBRARY_DEBUG}
		optimized ${RITK_COMMON_LIBRARY}
		optimized ${RITK_CORE_LIBRARY}
		optimized ${RITK_VISUALIZATION_LIBRARY}
		${ITK_LIBRARIES} 
		${QT_LIBRARIES} 
		${KINECTIMAGEPLUGIN_LIBRARY}
		GLU32
	)
ENDIF(WIN32)

SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES 
	DEBUG_POSTFIX "d")

#-----------------------------------------------------------------------------
# Installation
INSTALL(TARGETS ${LIBRARY_NAME} CONFIGURATIONS RELEASE
	RUNTIME DESTINATION ${RITK_BINARY_DIR}/release/plugins 
	LIBRARY DESTINATION ${RITK_BINARY_DIR}/release/plugins 
)
INSTALL(TARGETS ${LIBRARY_NAME} CONFIGURATIONS DEBUG
	RUNTIME DESTINATION ${RITK_BINARY_DIR}/debug/plugins 
	LIBRARY DESTINATION ${RITK_BINARY_DIR}/debug/plugins 
)


