# ---------------------------------------------------------------------
#
# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
#                        pour la Sant)
# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
# Previous Authors : Laurent Guigues, Jean-Pierre Roux
# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
#
#  This software is governed by the CeCILL-B license under French law and 
#  abiding by the rules of distribution of free software. You can  use, 
#  modify and/ or redistribute the software under the terms of the CeCILL-B 
#  license as circulated by CEA, CNRS and INRIA at the following URL 
#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
#  or in the file LICENSE.txt.
#
#  As a counterpart to the access to the source code and  rights to copy,
#  modify and redistribute granted by the license, users are provided only
#  with a limited warranty  and the software's author,  the holder of the
#  economic rights,  and the successive licensors  have only  limited
#  liability. 
#
#  The fact that you are presently reading this means that you have had
#  knowledge of the CeCILL-B license and that you accept its terms.
# ------------------------------------------------------------------------

#
# Test CMake version
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)

#MARK_AS_ADVANCED( FORCE CMAKE_BACKWARDS_COMPATIBILITY )
# for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003")
IF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
  CMAKE_POLICY(SET CMP0003 NEW)
  CMAKE_POLICY(SET CMP0005 NEW)
  CMAKE_POLICY(SET CMP0011 NEW)
ENDIF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)

###################################
PROJECT(creaImageIO)
###################################

#-----------------------------------------------------------------------------
# Configure Dart testing support.  This should be done before any
# MESSAGE(FATAL_ERROR ...) commands are invoked.
IF(INCLUDE_CTEST)
  INCLUDE(CTest)
  ENABLE_TESTING()
ENDIF(INCLUDE_CTEST)
IF(BUILD_TESTING)
  SET(BUILDNAME "${BUILDNAME}" CACHE STRING "Name of build on the dashboard")
  MARK_AS_ADVANCED(BUILDNAME)
ENDIF(BUILD_TESTING)
#-----------------------------------------------------------------------------

#==================================
# The project version
SET(PROJECT_MAJOR_VERSION 1)
SET(PROJECT_MINOR_VERSION 0)
SET(PROJECT_BUILD_VERSION 0)
SET(CREA_VERBOSE_CMAKE TRUE)

# JPR 4 mars 2011
set (CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/share/cmake/Module)

#==================================
# Find crea (mandatory, to use macros)
FIND_PACKAGE(crea REQUIRED)
IF (crea_FOUND)
  INCLUDE(${crea_USE_FILE})
ENDIF(crea_FOUND)
#==================================

#==================================
# Do not allow to build inside the source tree
CREA_PREVENT_IN_SOURCE_BUILD()
#==================================


# For boost 1.46 troubles...  // JPR.
add_definitions(-DBOOST_FILESYSTEM_VERSION=3)

SET(USE_GDCM_VTK ON)

SET(USE_VTK ON)

SET(USE_BOOST ON)
OPTION(USE_WXWIDGETS "Use WxWidgets GUI" ON)
OPTION(USE_QT4 "USE QT4GUI"       OFF)
OPTION(USE_XERCES "USE Xerces if you want to use an beta version of outputModel" OFF)
OPTION(USE_INSTALL_APP "install only useful applications" ON)

IF(USE_QT4)
	IF(USE_WXWIDGETS)
		 MESSAGE(ERROR "CANNOT USE QT WXWIDGETS IN SAME TIME")
	ENDIF(USE_WXWIDGETS)
ENDIF(USE_QT4)
		 
IF(QT4_FOUND)
 IF (WIN32)
 MESSAGE("So ... ${QT_DIR}")
		INCLUDE_DIRECTORIES(${QT_DIR}/../include)		
		LINK_DIRECTORIES(${QT_DIR}/../lib)
 ENDIF(WIN32)
ENDIF(QT4_FOUND)
#
# ----------------- manual setting GDCM/GDCM2 JPR
#		 
OPTION(USE_GDCM "Use gdcm 1.3" ON)
OPTION(USE_GDCM2 "Use gdcm 2.0.14 at least" OFF)

 MESSAGE(STATUS "GDCM LIB ....= ${GDCM_LIBRARIES}")
IF(USE_GDCM2)
	OPTION(USE_GDCM_ANOM "use gdcm2 anonymizer tool" OFF)
	#TO DO TEST IF GDCM_USE_SYSTEM_OPENSSL is valid
ENDIF(USE_GDCM2)
OPTION(USE_ITK "use ITK" ON)
CREA_FIND_AND_USE_LIBRARIES()

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
MARK_AS_ADVANCED(
  CMAKE_BACKWARDS_COMPATIBILITY
  EXECUTABLE_OUTPUT_PATH 
  LIBRARY_OUTPUT_PATH
  )

##EED 04juin203
##EED IF(WIN32)
##EED 	IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 4)
##EED 		INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
##EED 		LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
##EED 	endif()
##EED 	IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 8)
##EED 		INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win64)
##EED 		LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/win64)
##EED 	endif()
##EED ENDIF(WIN32)

##EED SQLite
##EED  mechanisme FIND_PACKAGE(SQLite)   missing ...
IF(WIN32)
   set (SQLITE_DIR $ENV{SQLITE_DIR})
   IF(DEFINED SQLITE_DIR)
     INCLUDE_DIRECTORIES(${SQLITE_DIR}/include)
     LINK_DIRECTORIES(${SQLITE_DIR}/lib)
   ELSE()
      MESSAGE(FATAL_ERROR  "System variable SQLITE_DIR not defined.")
   ENDIF()
ENDIF(WIN32)


SET(LIBNAME creaImageIO)
	INCLUDE_DIRECTORIES(
    ${PROJECT_BINARY_DIR}
    ${PROJECT_SOURCE_DIR}/src
    )
ADD_SUBDIRECTORY(src)


OPTION(BUILD_CREA_BRUKER "Build creaIRM with creaBruker?" ON)

IF (BUILD_CREA_BRUKER)
	FIND_PACKAGE(creaBruker REQUIRED)
	IF (creaBruker_FOUND)
		INCLUDE(${creaBruker_USE_FILE})
		CREA_DEFINE(BUILD_BRUKER)
	ENDIF(creaBruker_FOUND)
ENDIF (BUILD_CREA_BRUKER)


# To Use PACS connection library
OPTION(BUILD_CREA_PACS "Build creaImageIO with PACS connection library ?" OFF)
IF (BUILD_CREA_PACS)
	CREA_DEFINE(BUILD_PACS)
ENDIF(BUILD_CREA_PACS)

#==================================
# Subdirs

ADD_SUBDIRECTORY(appli)
ADD_SUBDIRECTORY(bbtk)

#EED 31/05/2011   not compiling 
#ADD_SUBDIRECTORY(tests)

##EED 04juin203
##EED IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 4)
##EED 	ADD_SUBDIRECTORY(win32)
##EED endif()
##EED IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 8)
##EED 	ADD_SUBDIRECTORY(win64)
##EED endif()

ADD_SUBDIRECTORY(install)
#==================================


#EED 31/05/2011   not compiling 
#ENABLE_TESTING()
