X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fcmake%2FBBTKFindLibraries.cmake;h=a57a7079a3ad621cb816cf52e1c92094fcdbad09;hb=899e84df04040566381e7252faa0b47d0863baca;hp=084fa2970fa01137e08470a10751a2d70d16c81d;hpb=26a8c332dda10ace9e3e088b2ca8544d188c9743;p=bbtk.git diff --git a/kernel/cmake/BBTKFindLibraries.cmake b/kernel/cmake/BBTKFindLibraries.cmake index 084fa29..a57a707 100644 --- a/kernel/cmake/BBTKFindLibraries.cmake +++ b/kernel/cmake/BBTKFindLibraries.cmake @@ -1,256 +1,153 @@ + # --------------------------------------------------------------------- + # + # 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. + # ------------------------------------------------------------------------ */ + #----------------------------------------------------------------------------- -IF(USE_KW) - # Search KWWidgets - FIND_PACKAGE(KWWidgets) - # If found - IF(KWWidgets_FOUND) - MESSAGE ( STATUS "=======================================") - MESSAGE ( STATUS "Looking for KWWidgets... found") - MESSAGE ( STATUS "* Dir = ${KWWidgets_DIR}") - MESSAGE ( STATUS "* Version = ${KWWidgets_MAJOR_VERSION}.${KWWidgets_MINOR_VERSION}.${KWWidgets_BUILD_VERSION}") - INCLUDE(${KWWidgets_USE_FILE}) - ADD_DEF( USE_KWWIDGETS ) - SET(BBTK_KWWIDGETS_LIBRARIES - ${KWWidgets_LIBRARIES} - ) - MARK_AS_ADVANCED(KWWidgets_DIR) - ELSE(KWWidgets_FOUND) - message(FATAL_ERROR "KWWidgets_DIR not found") - ENDIF(KWWidgets_FOUND) -ENDIF(USE_KW) +MESSAGE ( STATUS "") +MESSAGE ( STATUS "=======================================") +MESSAGE ( STATUS " LOOKING FOR LIBRARIES NEEDED") +MESSAGE ( STATUS "=======================================") +MESSAGE ( STATUS "") #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -#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 "=======================================") - 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) +# 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) #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -#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 "=======================================") - 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 ) +# USE SHIPPED BOOST ? +IF(BBTK_KERNEL OR BBTK_CORE_PACKAGE) - IF ( itk_IMAGE_TYPE_CHAR ) - ADD_DEF( BBTK_ITK_IMAGE_TYPE_int8_t ) - ENDIF ( itk_IMAGE_TYPE_CHAR ) +#IF(BBTK_USE_SHIPPED_BOOST) - 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) -#----------------------------------------------------------------------------- +# 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) #----------------------------------------------------------------------------- -#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 "=======================================") - 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) +#----------------------------------------------------------------------------- +CREA_FIND_AND_USE_LIBRARIES() #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -IF(USE_WXWIDGETS) - MESSAGE ( STATUS "=======================================") - INCLUDE(${BBTK_CMAKE_DIR}/BBTKWxWidgets.cmake) - BBTK_FIND_WXWIDGETS() - BBTK_USE_WXWIDGETS() -ENDIF(USE_WXWIDGETS) +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS " ... ALL NEEDED LIBRARIES FOUND") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "") #----------------------------------------------------------------------------- +#----------------------------------------------------------------------------- +# bbtk library dependencies +#----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -IF(USE_DOXYGEN) - MESSAGE ( STATUS "=======================================") - 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) +# 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) +#----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -IF(USE_LATEX) - FIND_PACKAGE(LATEX REQUIRED) - MESSAGE ( STATUS "=======================================") - MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}") -ENDIF(USE_LATEX) +# QT +IF(BBTK_USE_QT) + SET(BBTK_LINK_LIBRARIES + ${BBTK_LINK_LIBRARIES} + ${QT_LIBRARIES} + ) +ENDIF(BBTK_USE_QT) #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -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 "=======================================") - MESSAGE(STATUS "Looking for tth... - found ${LATEX_tth_CONVERTER}") - ENDIF(NOT LATEX_tth_CONVERTER) - MARK_AS_ADVANCED(LATEX_tth_CONVERTER) -ENDIF(USE_TTH) +# BOOST +SET(BBTK_LINK_LIBRARIES + ${BBTK_LINK_LIBRARIES} + ${BBTK_BOOST_LIBRARIES} + ) #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -IF(USE_BOOST) - 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}) +# 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) +#----------------------------------------------------------------------------- - # TO DO : CLEANLY BLOCK auto_link.hpp INCLUSION - #ADD_DEF(BOOST_SIGNALS_NO_LIB) - SET(BBTK_BOOST_LIBRARIES - bbtk_boost_signals - ) +#----------------------------------------------------------------------------- +MESSAGE(STATUS "") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "bbtk LINK LIBRARIES:") +MESSAGE(STATUS "${BBTK_LINK_LIBRARIES}") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "") +#----------------------------------------------------------------------------- - ELSE(BBTK_USE_SHIPPED_BOOST) - FIND_PACKAGE(Boost REQUIRED) - MARK_AS_ADVANCED(Boost_INCLUDE_DIR) - IF(Boost_FOUND) - MESSAGE ( STATUS "=======================================") - 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_ERROR "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) #----------------------------------------------------------------------------- +# EO bbtk library dependencies +#----------------------------------------------------------------------------- +