]> Creatis software - bbtk.git/blobdiff - kernel/cmake/BBTKFindLibraries.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / BBTKFindLibraries.cmake
index a4e3dcb09c466634c5ed260090be7dd71a8896e4..463a773aaad0ea26a929f37c5c9434ec38fef48c 100644 (file)
+
+#-----------------------------------------------------------------------------
+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)
+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)
+#-----------------------------------------------------------------------------
+
+
+
+
 #-----------------------------------------------------------------------------
-#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 "VTK FOUND - 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)
-#-----------------------------------------------------------------------------
-
-
-#-----------------------------------------------------------------------------
-#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 "ITK FOUND - 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_ )
-    
-    SET(BBTK_GDCM_LIBRARIES
-# TO DO : USE GDCM LINK 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
-      )  
-
-  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)
+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)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# BOOST 
+SET(BBTK_LINK_LIBRARIES
+  ${BBTK_LINK_LIBRARIES}
+  ${BBTK_BOOST_LIBRARIES} 
+  ) 
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# 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)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "bbtk LINK LIBRARIES:")
+MESSAGE(STATUS "${BBTK_LINK_LIBRARIES}")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# EO bbtk library dependencies
+#-----------------------------------------------------------------------------
+