X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fcmake%2FBBTKFindLibraries.cmake;h=21d8599efa703b2993b885ca72c00b90cb05da26;hb=cf155931d4fded21cd2aaaeb0f3ead82067d2bef;hp=96ff1c840c69bb63398c82fccadebfdf7773670a;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/cmake/BBTKFindLibraries.cmake b/kernel/cmake/BBTKFindLibraries.cmake index 96ff1c8..21d8599 100644 --- a/kernel/cmake/BBTKFindLibraries.cmake +++ b/kernel/cmake/BBTKFindLibraries.cmake @@ -1,3 +1,5 @@ + + #----------------------------------------------------------------------------- #OPTION(USE_VTK "Build VTK-based black boxes" OFF) IF(USE_VTK) @@ -5,15 +7,20 @@ IF(USE_VTK) FIND_PACKAGE(VTK) # If vtk found IF(VTK_FOUND) - MESSAGE ( STATUS "VTK FOUND - VERSION = ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}") + 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 vtkImaging vtkGraphics vtkRendering vtkFiltering vtkCommon vtkWidgets + vtkVolumeRendering # LG : removed vtkIO because conflict with itktiff lib in ITKIO ) MARK_AS_ADVANCED(VTK_DIR) + ELSE(VTK_FOUND) + message(FATAL_ERROR "VTK_DIR not found") ENDIF(VTK_FOUND) ENDIF(USE_VTK) #----------------------------------------------------------------------------- @@ -26,7 +33,9 @@ IF(USE_ITK) FIND_PACKAGE(ITK) # If itk found IF(ITK_FOUND) - MESSAGE ( STATUS "ITK FOUND - VERSION = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}") + 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 @@ -89,10 +98,13 @@ IF(USE_ITK) 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) @@ -102,78 +114,108 @@ IF(USE_GDCM) 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 !!! - libgdcm libgdcmjpeg8 libgdcmjpeg12libgdcmjpeg16 +# 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) + #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- -#OPTION(USE_WXWIDGETS "Build wxWidgets-based black boxes" OFF) IF(USE_WXWIDGETS) + INCLUDE(${BBTK_CMAKE_DIR}/BBTKWxWidgets.cmake) + BBTK_FIND_WXWIDGETS() + BBTK_USE_WXWIDGETS() +ENDIF(USE_WXWIDGETS) +#----------------------------------------------------------------------------- -IF(WIN32) - # Search WXWIDGETS - - # WXWINDOWS_LIBRARY = full path to the wxWindows library and linker flags on unix - # CMAKE_WX_CXX_FLAGS = compiler flags for building wxWindows - # WXWINDOWS_INCLUDE_PATH = include path of wxWindows - SET(WXWINDOWS_USE_GL 1) - - #wxWidgets build related stuff - SET(WXW_USE_DEBUG ON) - SET(WXW_USE_UNICODE OFF) - SET(WXW_USE_SHARED ON) - SET(WXW_USE_UNIV OFF) - SET(WXW_USE_MONO OFF) - SET(WXW_FILE_VERSION "28") - SET(WXW_VERSION "2.8") - - #CMake Options - # Why forcing verbosity ? - # SET(CMAKE_VERBOSE_MAKEFILE TRUE) - - INCLUDE (${BBTK_DIR}/BBTKFindWX_WIN) - # - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${WXWIDGETS_CXX_FLAGS}") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}${WXWIDGETS_EXE_LINKER_FLAGS}") - ADD_DEFINITIONS( ${WXWIDGETS_DEFINITIONS} ) - # - INCLUDE_DIRECTORIES(${WXWIDGETS_INCLUDE_DIR}) - LINK_DIRECTORIES( ${WXWIDGETS_LINK_DIRECTORIES} ) - SET(THE_WXWIDGETS_LIBRARIES - ${WXWIDGETS_LIBRARIES} - debug msvcrtd - debug msvcprtd - optimized msvcrt - optimized msvcprt - ) -ENDIF(WIN32) -IF(UNIX) - # GTK2 - INCLUDE(${BBTK_DIR}/BBTKFindGTK2.cmake) - INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) - LINK_DIRECTORIES(${GTK2_LIBRARY_DIRS}) - LINK_LIBRARIES(${GTK2_LIBRARIES}) - # WX - # LG : Do not force but use what is installed ! - # SET(wxWidgets_USE_LIBS base core gl) - FIND_PACKAGE( wxWidgets REQUIRED) - INCLUDE( ${wxWidgets_USE_FILE} ) - MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE) - SET(THE_WXWIDGETS_LIBRARIES - ${GTK2_LIBRARIES} - ${wxWidgets_LIBRARIES} - ) -ENDIF(UNIX) - -ADD_DEF( _USE_WXWIDGETS_ ) -SET(BBTK_WXWIDGETS_LIBRARIES - ${THE_WXWIDGETS_LIBRARIES} - ) -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 + ) + + 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) #-----------------------------------------------------------------------------