+ # ---------------------------------------------------------------------
+ #
+ # 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.
+ # ------------------------------------------------------------------------ */
+
+#-----------------------------------------------------------------------------
+MESSAGE ( STATUS "")
+MESSAGE ( STATUS "=======================================")
+MESSAGE ( STATUS " LOOKING FOR LIBRARIES NEEDED")
+MESSAGE ( STATUS "=======================================")
+MESSAGE ( STATUS "")
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# 11/12/08 : BBTK IS NOW BASED ON crea
+SET(CREA_VERBOSE_CMAKE TRUE)
+FIND_PACKAGE(crea REQUIRED )
+set(crea_BUILD_SETTINGS_FILE OFF)
+IF (crea_FOUND)
+ INCLUDE(${crea_USE_FILE} )
+ENDIF(crea_FOUND)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+# USE SHIPPED BOOST ?
+IF(BBTK_KERNEL OR BBTK_CORE_PACKAGE)
+
+#IF(BBTK_USE_SHIPPED_BOOST)
+
+# MESSAGE ( STATUS "=======================================")
+# MESSAGE ( STATUS "bbtk uses shipped boost C++ library (${BBTK_SHIPPED_BOOST})")
+# INCLUDE_DIRECTORIES(
+# ${PROJECT_SOURCE_DIR}/kernel/src/ThirdParty/${BBTK_SHIPPED_BOOST})
+
+ # TO DO : CLEANLY BLOCK auto_link.hpp INCLUSION
+ #CREA_DEFINE(BOOST_SIGNALS_NO_LIB)
+# SET(BBTK_BOOST_LIBRARIES
+# bbtk_boost_signals
+# )
+
+#ELSE(BBTK_USE_SHIPPED_BOOST)
+ SET(USE_BOOST ON CACHE BOOL "Use boost C++ library" FORCE)
+# SET(BBTK_BOOST_LIBRARIES
+# boost_signals
+# )
+#ENDIF(BBTK_USE_SHIPPED_BOOST)
+
+ENDIF(BBTK_KERNEL OR BBTK_CORE_PACKAGE)
+#-----------------------------------------------------------------------------
+
+
+
+#-----------------------------------------------------------------------------
+CREA_FIND_AND_USE_LIBRARIES()
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS " ... ALL NEEDED LIBRARIES FOUND")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+# bbtk library dependencies
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# WXWIDGETS
+IF(BBTK_USE_WXWIDGETS)
+ SET(BBTK_LINK_LIBRARIES
+ ${BBTK_LINK_LIBRARIES}
+ ${WXWIDGETS_LIBRARIES}
+ )
+ENDIF(BBTK_USE_WXWIDGETS)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# KWWIDGETS
+IF(BBTK_USE_KWWIDGETS)
+ SET(BBTK_LINK_LIBRARIES
+ ${BBTK_LINK_LIBRARIES}
+ ${KWWIDGETS_LIBRARIES}
+ )
+ENDIF(BBTK_USE_KWWIDGETS)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# QT
+IF(BBTK_USE_QT)
+ SET(BBTK_LINK_LIBRARIES
+ ${BBTK_LINK_LIBRARIES}
+ ${QT_LIBRARIES}
+ )
+ENDIF(BBTK_USE_QT)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# BOOST
+SET(BBTK_LINK_LIBRARIES
+ ${BBTK_LINK_LIBRARIES}
+ ${BBTK_BOOST_LIBRARIES}
+ )
#-----------------------------------------------------------------------------
-#OPTION(USE_VTK "Build VTK-based black boxes" OFF)
-IF(USE_VTK)
- # Search VTK
- FIND_PACKAGE(VTK)
- # If vtk found
- IF(VTK_FOUND)
- MESSAGE ( STATUS "Looking for VTK... found")
- MESSAGE ( STATUS "* Dir = ${VTK_DIR}")
- MESSAGE ( STATUS "* Version = ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}")
- INCLUDE(${VTK_USE_FILE})
- ADD_DEF( _USE_VTK_ )
- SET(BBTK_VTK_LIBRARIES
- vtkCommon # Mandatory
- vtkFiltering # vtkImageData
- vtkRendering # vtkProp3D
- vtkWidgets # vtkImagePlaneWidget
- vtkIO # vtkMetaImageReader/Writer
- vtkImaging # filters such as vtkImageAnisotropicDiffusion3D
- vtkGraphics # vtkContourFilter, sources
- vtkVolumeRendering # Mappers
-# vtkGenericFiltering
- )
- MARK_AS_ADVANCED(VTK_DIR)
- ELSE(VTK_FOUND)
- message(FATAL_ERROR "VTK_DIR not found")
- ENDIF(VTK_FOUND)
-ENDIF(USE_VTK)
-#-----------------------------------------------------------------------------
-
-
-#-----------------------------------------------------------------------------
-#OPTION(USE_ITK "Build ITK-based black boxes" OFF)
-IF(USE_ITK)
- # Search ITK
- FIND_PACKAGE(ITK)
- # If itk found
- IF(ITK_FOUND)
- MESSAGE ( STATUS "Looking for ITK... found")
- MESSAGE ( STATUS "* Dir = ${ITK_DIR}")
- MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}")
- INCLUDE(${ITK_USE_FILE})
- ADD_DEF( _USE_ITK_ )
- SET(BBTK_ITK_LIBRARIES
- ITKCommon ITKIO ITKBasicFilters ITKAlgorithms
- )
- MARK_AS_ADVANCED(ITK_DIR)
- # images compilation option
- OPTION ( itk_IMAGE_DIM_2 "itk : Compile 2D images" ON)
- OPTION ( itk_IMAGE_DIM_3 "itk : Compile 3D images" ON)
- OPTION ( itk_IMAGE_DIM_4 "itk : Compile 4D images" ON)
- OPTION ( itk_IMAGE_TYPE_CHAR "itk : Compile char images" ON)
- OPTION ( itk_IMAGE_TYPE_UCHAR "itk : Compile unsigned char images" ON)
- OPTION ( itk_IMAGE_TYPE_SHORT "itk : Compile short images" ON)
- OPTION ( itk_IMAGE_TYPE_USHORT "itk : Compile unsigned short images" ON)
- OPTION ( itk_IMAGE_TYPE_INT "itk : Compile int images" ON)
- OPTION ( itk_IMAGE_TYPE_UINT "itk : Compile unsigned int images" ON)
- OPTION ( itk_IMAGE_TYPE_FLOAT "itk : Compile float images" ON)
- OPTION ( itk_IMAGE_TYPE_DOUBLE "itk : Compile double images" ON)
-
- IF ( itk_IMAGE_DIM_2 )
- ADD_DEF( BBTK_ITK_IMAGE_DIM_2 )
- ENDIF ( itk_IMAGE_DIM_2 )
-
- IF ( itk_IMAGE_DIM_3 )
- ADD_DEF( BBTK_ITK_IMAGE_DIM_3 )
- ENDIF ( itk_IMAGE_DIM_3 )
-
- IF ( itk_IMAGE_DIM_4 )
- ADD_DEF( BBTK_ITK_IMAGE_DIM_4 )
- ENDIF ( itk_IMAGE_DIM_4 )
-
- IF ( itk_IMAGE_TYPE_CHAR )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_int8_t )
- ENDIF ( itk_IMAGE_TYPE_CHAR )
-
- IF ( itk_IMAGE_TYPE_UCHAR )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint8_t )
- ENDIF ( itk_IMAGE_TYPE_UCHAR )
-
- IF ( itk_IMAGE_TYPE_SHORT )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_int16_t )
- ENDIF ( itk_IMAGE_TYPE_SHORT )
-
- IF ( itk_IMAGE_TYPE_USHORT )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint16_t )
- ENDIF ( itk_IMAGE_TYPE_USHORT )
-
- IF ( itk_IMAGE_TYPE_INT )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_int32_t )
- ENDIF ( itk_IMAGE_TYPE_INT )
-
- IF ( itk_IMAGE_TYPE_UINT )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint32_t )
- ENDIF ( itk_IMAGE_TYPE_UINT )
-
- IF ( itk_IMAGE_TYPE_FLOAT )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_float )
- ENDIF ( itk_IMAGE_TYPE_FLOAT )
-
- IF ( itk_IMAGE_TYPE_DOUBLE )
- ADD_DEF( BBTK_ITK_IMAGE_TYPE_double )
- ENDIF ( itk_IMAGE_TYPE_DOUBLE )
- ELSE(ITK_FOUND)
- message(FATAL_ERROR "ITK_DIR not found")
- ENDIF(ITK_FOUND)
-ENDIF(USE_ITK)
-#-----------------------------------------------------------------------------
-
-
-#-----------------------------------------------------------------------------
-#OPTION(USE_GDCM "Build GDCM-based black boxes" OFF)
-IF(USE_GDCM)
- # Search GDCM
- FIND_PACKAGE(GDCM)
- # If gdcm found
- IF(GDCM_FOUND)
- INCLUDE(${GDCM_USE_FILE})
- ADD_DEF( _USE_GDCM_ )
-
- MESSAGE ( STATUS "Looking for GDCM... found")
- MESSAGE ( STATUS "* Dir = ${GDCM_DIR}")
- MESSAGE ( STATUS "* Version = ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
- MESSAGE ( STATUS "* Namespace = ${GDCM_NAME_SPACE}")
-
- # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with
- # embedded gdcm in ITK and will result in hard seg faults !
- IF (GDCM_NAME_SPACE STREQUAL "gdcm")
- MESSAGE(FATAL_ERROR "GDCM_NAME_SPACE value is 'gdcm' which conflicts with ITK embededd gdcm namespace : rebuild gdcm with another GDCM_NAME_SPACE value")
- ENDIF (GDCM_NAME_SPACE STREQUAL "gdcm")
-
- MARK_AS_ADVANCED(GDCM_DIR)
-
- SET(BBTK_GDCM_LIBRARIES
-# TO DO : USE GDCM LINK LIBRARIES !!!
-# IF gdcm WAS NOT COMPILE WITH VTK THE ABOVE FORCED LINK WITH vtkgdcm DOES NOT WORK
- ${GDCM_LIBRARIES}
-#gdcm gdcmjpeg8 gdcmjpeg12 gdcmjpeg16
- )
-
-
-# IF(USE_VTK )
-# SET(BBTK_GDCM_LIBRARIES
-# ${BBTK_GDCM_LIBRARIES}
-# vtkgdcm
-# )
-# ENDIF(USE_VTK)
-
- ENDIF(GDCM_FOUND)
-ENDIF(USE_GDCM)
-
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-IF(USE_WXWIDGETS)
- INCLUDE(${BBTK_CMAKE_DIR}/BBTKWxWidgets.cmake)
- BBTK_FIND_WXWIDGETS()
- BBTK_USE_WXWIDGETS()
-ENDIF(USE_WXWIDGETS)
-#-----------------------------------------------------------------------------
-
-
-
-#-----------------------------------------------------------------------------
-IF(USE_DOXYGEN)
- FIND_PACKAGE(Doxygen REQUIRED)
-# MESSAGE(STATUS "Looking for doxygen... - found ${DOXYGEN}")
- IF(DOXYGEN)
-
- ELSE(DOXYGEN)
- MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
- ENDIF(DOXYGEN)
-ENDIF(USE_DOXYGEN)
-#-----------------------------------------------------------------------------
-
-
-#-----------------------------------------------------------------------------
-IF(USE_LATEX)
- FIND_PACKAGE(LATEX REQUIRED)
- MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
-ENDIF(USE_LATEX)
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-IF(USE_TTH)
- FIND_FILE(LATEX_tth_CONVERTER NAME tth tth.exe PATHS . $ENV{CREATIS}/tth_exe/ ~/Creatis/tth ~/Creatis/tth_linux)
- IF (NOT LATEX_tth_CONVERTER)
- MESSAGE(FATAL_ERROR "TTH not found (LATEX_tth_CONVERTER). Required to build the HTML documentation from tex source")
- ELSE (NOT LATEX_tth_CONVERTER)
- MESSAGE(STATUS "Looking for tth... - found ${LATEX_tth_CONVERTER}")
- ENDIF(NOT LATEX_tth_CONVERTER)
- MARK_AS_ADVANCED(LATEX_tth_CONVERTER)
-ENDIF(USE_TTH)
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-IF(USE_BOOST)
- IF(BBTK_USE_SHIPPED_BOOST)
- MESSAGE(STATUS "bbtk uses shipped boost C++ library (${BBTK_SHIPPED_BOOST})")
- INCLUDE_DIRECTORIES(
- ${PROJECT_SOURCE_DIR}/kernel/src/ThirdParty/${BBTK_SHIPPED_BOOST})
- # TO DO : CLEANLY BLOCK auto_link.hpp INCLUSION
- #ADD_DEF(BOOST_SIGNALS_NO_LIB)
- SET(BBTK_BOOST_LIBRARIES
- bbtk_boost_signals
- )
+#-----------------------------------------------------------------------------
+# On unix systems, need to link against dl for dynamic librairies open/close
+IF(UNIX)
+ SET(BBTK_LINK_LIBRARIES
+ ${BBTK_LINK_LIBRARIES}
+ dl)
+ENDIF(UNIX)
+#-----------------------------------------------------------------------------
- ELSE(BBTK_USE_SHIPPED_BOOST)
- FIND_PACKAGE(Boost REQUIRED)
- MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
- IF(Boost_FOUND)
- MESSAGE(STATUS "Looking for boost C++ library... - found in ${Boost_INCLUDE_DIR}")
- INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
- LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS} )
- SET(BBTK_BOOST_LIBRARIES
- boost_signals
- )
- ELSE(Boost_FOUND)
- MESSAGE(FATAL_ERRO "boost C++ library not found - either set Boost_INCLUDE_DIR or set BBTK_USE_SHIPPED_BOOST to ON to use shipped ${BBTK_SHIPPED_BOOST}")
- ENDIF(Boost_FOUND)
- ENDIF(BBTK_USE_SHIPPED_BOOST)
-ENDIF(USE_BOOST)
#-----------------------------------------------------------------------------
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "bbtk LINK LIBRARIES:")
+MESSAGE(STATUS "${BBTK_LINK_LIBRARIES}")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# EO bbtk library dependencies
+#-----------------------------------------------------------------------------
+