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
		ClampIntensityImageFilter.h
		ClampRangeImageFilter.h
		CRWidget.h
		ClampRangeImageFilterPlugin.h
		ClampRangeImageFilterPluginFactory.h 
)

SET(	SRCS
		ClampIntensityImageFilter.txx
		ClampRangeImageFilter.txx
		CRWidget.cxx
		ClampRangeImageFilterPlugin.cxx
		ClampRangeImageFilterPluginFactory.cxx
)

SET(	MOC_HDRS 
		CRWidget.h
		ClampRangeImageFilterPlugin.h
		ClampRangeImageFilterPluginFactory.h
)

SET(	UIS
		CRWidget.ui
)

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


#-----------------------------------------------------------------------------
# Set the name for the library (LIBRARY_NAME) and the include directories for this plugin (INCLUDE_DIRS)

SET(	LIBRARY_NAME 
		ClampRangeFilterPlugin
)

SET(	INCLUDE_DIRS
		${CMAKE_CURRENT_SOURCE_DIR}
		${CMAKE_CURRENT_BINARY_DIR}
)

SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)


#-----------------------------------------------------------------------------
# Set include directories, definitions and libs for this plugin

INCLUDE_DIRECTORIES(
	${INCLUDE_DIRS} 
	${RITK_INCLUDE_DIRS}
)
ADD_LIBRARY(
	${LIBRARY_NAME} SHARED 
	${SRCS} 
	${HDRS} 
	${MOC_SRCS} 
	${UI_HDRS}
)
TARGET_LINK_LIBRARIES(
	${LIBRARY_NAME} 
	debug ${RITK_COMMON_LIBRARY_DEBUG}
	debug ${RITK_CORE_LIBRARY_DEBUG}
	optimized ${RITK_COMMON_LIBRARY}
	optimized ${RITK_CORE_LIBRARY}
	${ITK_LIBRARIES} 
	${QT_LIBRARIES}
	${VTK_LIBRARIES}
)
SET_TARGET_PROPERTIES(
	${LIBRARY_NAME} 
	PROPERTIES  DEBUG_POSTFIX "d"
)
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_SHARED)


#-----------------------------------------------------------------------------
# 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 
)
