]> Creatis software - bbtk.git/blobdiff - kernel/cmake/BBTKFindLibraries.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / BBTKFindLibraries.cmake
index 5f4346c6877280b3de79510d0bbc3d5703420bb1..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)
 #-----------------------------------------------------------------------------
-#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
-      # LG : removed vtkIO because conflict with itktiff lib in ITKIO 
-      ) 
-    MARK_AS_ADVANCED(VTK_DIR)
-  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 )
-  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 !!!
-      libgdcm libgdcmjpeg8 libgdcmjpeg12libgdcmjpeg16
-      )
-  ENDIF(GDCM_FOUND)
-ENDIF(USE_GDCM)
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-#OPTION(USE_WXWIDGETS "Build wxWidgets-based black boxes" OFF)
-IF(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.cmake)
-  #
-  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
+
+
+#-----------------------------------------------------------------------------
+# 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(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)
+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 "")
+#-----------------------------------------------------------------------------
 
-ADD_DEF( _USE_WXWIDGETS_ )
-SET(BBTK_WXWIDGETS_LIBRARIES
-  ${THE_WXWIDGETS_LIBRARIES}
-  )
 
-ENDIF(USE_WXWIDGETS)
+#-----------------------------------------------------------------------------
+# 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)
+#-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-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)
+# 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)
+#-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-IF(USE_LATEX) 
-  FIND_PACKAGE(LATEX REQUIRED)
-  MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
-ENDIF(USE_LATEX) 
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "bbtk LINK LIBRARIES:")
+MESSAGE(STATUS "${BBTK_LINK_LIBRARIES}")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-IF(USE_TTH) 
-  FIND_FILE(LATEX_tth_CONVERTER NAME tth tth.exe PATHS . c:/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)
+# EO bbtk library dependencies
 #-----------------------------------------------------------------------------
+