]> Creatis software - crea.git/blobdiff - cmake/CREAMacro_FindAndUseLibraries.cmake
Patch for finding QT4
[crea.git] / cmake / CREAMacro_FindAndUseLibraries.cmake
index dda7ff9b7f76cca9ec1e40396c807f7f9d4757b5..99cea3f3634ed4b71eba5510a6ee30027f0328a2 100644 (file)
 
 MACRO(CREA_FIND_AND_USE_LIBRARIES)
 
+#-----------------------------------------------------------------------------
+# If one can invoke this macro then crea has already been found !!
+# However if one whishes to link against crea and crea was built 
+# with wx or vtk then we have to find them.
+# This USE_CREA var is made to resolve this dependency.
+IF(USE_CREA)
+  IF(CREA_BUILT_WITH_WX)
+    SET(USE_WXWIDGETS ON)
+  ENDIF(CREA_BUILT_WITH_WX)
+  IF(CREA_BUILT_WITH_VTK)
+    SET(USE_VTK ON)
+  ENDIF(CREA_BUILT_WITH_VTK)
+ENDIF(USE_CREA)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+IF(USE_QT4)
+  IF(NOT QT_FOUND)
+    FIND_PACKAGE(Qt4 REQUIRED)
+    IF(QT_FOUND)
+      MESSAGE ( STATUS "=======================================")
+      MESSAGE ( STATUS "Looking for QT4... found")
+      MESSAGE ( STATUS "* Inc Dir = ${QT_INCLUDE_DIR}")
+      MESSAGE ( STATUS "* Version = ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
+      INCLUDE(${QT_USE_FILE})
+      CREA_DEFINE( USE_QT )
+    #    SET(QT_LIBRARIES
+    #      ${QT_LIBRARIES}
+    #      ) 
+    #  MARK_AS_ADVANCED(Qt4_DIR)
+   ENDIF(QT_FOUND)
+  ENDIF(NOT QT_FOUND)
+ENDIF(USE_QT4)
+#-----------------------------------------------------------------------------
+
 #-----------------------------------------------------------------------------
 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})
-    CREA_DEFINE( USE_VTK )
-    SET(VTK_LIBRARIES
-      vtkImaging  vtkGraphics vtkRendering vtkFiltering vtkCommon vtkWidgets
-      vtkVolumeRendering
-      # LG : removed vtkIO because conflict with itktiff lib in ITKIO 
-      ) 
-    IF(NOT USE_ITK)
-     SET(VTK_LIBRARIES ${VTK_LIBRARIES} vtkIO)
-    ENDIF(NOT USE_ITK)
-    MARK_AS_ADVANCED(VTK_DIR)
-  ELSE(VTK_FOUND)
-     message(FATAL_ERROR "VTK_DIR not found")
-  ENDIF(VTK_FOUND)
+  INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseVTK.cmake)
+  CREA_FIND_AND_USE_VTK()  
 ENDIF(USE_VTK)
 #-----------------------------------------------------------------------------
 
+#-----------------------------------------------------------------------------
+IF(USE_KWWIDGETS)
+  IF(NOT KWWidgets_FOUND)
+    # 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}")
+      IF (USE_VTK)
+         # KWWidgets must not search again for vtk !
+        SET(KWWidgets_NO_USE_VTK ON)
+      ENDIF (USE_VTK)
 
+      INCLUDE(${KWWidgets_USE_FILE})
+      CREA_DEFINE( USE_KWWIDGETS )
+      SET(KWWIDGETS_LIBRARIES
+       ${KWWidgets_LIBRARIES}
+       ) 
+      MARK_AS_ADVANCED(KWWidgets_DIR)
+    ELSE(KWWidgets_FOUND)
+      message(FATAL_ERROR "KWWidgets_DIR not found")
+    ENDIF(KWWidgets_FOUND)
+  ENDIF(NOT KWWidgets_FOUND)
+ENDIF(USE_KWWIDGETS)
 #-----------------------------------------------------------------------------
-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})
-    CREA_DEFINE( USE_ITK )
-    SET(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 ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_DIM_2 )
-    ENDIF ( itk_IMAGE_DIM_2 )
-    
-    IF ( itk_IMAGE_DIM_3 ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_DIM_3 )
-    ENDIF ( itk_IMAGE_DIM_3 )
-    
-    IF ( itk_IMAGE_DIM_4 ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_DIM_4 )
-    ENDIF ( itk_IMAGE_DIM_4 )
 
-    IF ( itk_IMAGE_TYPE_CHAR ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int8_t )
-    ENDIF ( itk_IMAGE_TYPE_CHAR )
 
-    IF ( itk_IMAGE_TYPE_UCHAR ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint8_t )
-    ENDIF ( itk_IMAGE_TYPE_UCHAR )
-    
-    IF ( itk_IMAGE_TYPE_SHORT ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int16_t )
-    ENDIF ( itk_IMAGE_TYPE_SHORT )
-    
-    IF ( itk_IMAGE_TYPE_USHORT ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint16_t )
-    ENDIF ( itk_IMAGE_TYPE_USHORT )
-    
-    IF ( itk_IMAGE_TYPE_INT ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int32_t )
-    ENDIF ( itk_IMAGE_TYPE_INT )
-    
-    IF ( itk_IMAGE_TYPE_UINT ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint32_t )
-    ENDIF ( itk_IMAGE_TYPE_UINT )
-    
-    IF ( itk_IMAGE_TYPE_FLOAT ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_float )
-    ENDIF ( itk_IMAGE_TYPE_FLOAT )
-    
-    IF ( itk_IMAGE_TYPE_DOUBLE ) 
-      CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_double )
-    ENDIF ( itk_IMAGE_TYPE_DOUBLE )
-  ELSE(ITK_FOUND)
-     message(FATAL_ERROR "ITK_DIR not found")
-  ENDIF(ITK_FOUND)
+
+#-----------------------------------------------------------------------------
+IF(USE_ITK)
+  IF(NOT ITK_FOUND)
+    # 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}")
+      SET(SKIP_ITK_BUILD_SETTINGS_FILE ON)
+      INCLUDE(${ITK_USE_FILE})
+      CREA_DEFINE( USE_ITK )
+      CREA_DEFINE( _USE_ITK_ )
+      SET(ITK_LIBRARIES
+       ITKCommon ITKIO ITKBasicFilters ITKAlgorithms
+       )  
+      MARK_AS_ADVANCED(ITK_DIR)
+    ELSE(ITK_FOUND)
+      message(FATAL_ERROR "ITK_DIR not found")
+    ENDIF(ITK_FOUND)
+  ENDIF(NOT ITK_FOUND)
 ENDIF(USE_ITK)
 #-----------------------------------------------------------------------------
 
 
 #-----------------------------------------------------------------------------
 IF(USE_GDCM)
-  # Search GDCM
-  FIND_PACKAGE(GDCM)
-  # If gdcm found
-  IF(GDCM_FOUND)
-    INCLUDE(${GDCM_USE_FILE})
-    CREA_DEFINE( 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}")
+  IF (USE_GDCM2)
+    MESSAGE(ERROR "CANNOT USE BOTH gdcm AND gdcm2 !")
+  ENDIF (USE_GDCM2)
 
-    # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with 
-    # embedded gdcm in ITK and will result in hard seg faults !
-    IF(USE_ITK)
-      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")
-    ENDIF(USE_ITK)
-    
-    MARK_AS_ADVANCED(GDCM_DIR)
-    
-    SET(GDCM_LIBRARIES
+  IF(NOT GDCM_FOUND)
+    # Search GDCM
+    FIND_PACKAGE(GDCM)
+    # If gdcm found
+    IF(GDCM_FOUND)
+      INCLUDE(${GDCM_USE_FILE})
+      CREA_DEFINE( 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(USE_ITK)
+       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")
+      ENDIF(USE_ITK)
+      
+      MARK_AS_ADVANCED(GDCM_DIR)
+      
+      SET(GDCM_LIBRARIES
         ${GDCM_LIBRARIES} 
-      )
-
-# TODO : Test that GDCM was built with option "vtkgdcm"
-    IF(USE_GDCM_VTK)
-     IF(USE_VTK)
-       SET(GDCM_LIBRARIES
-        ${GDCM_LIBRARIES}
-         vtkgdcm  
-         )
-     ENDIF(USE_VTK)
-    ENDIF(USE_GDCM_VTK)
-
-  ENDIF(GDCM_FOUND)
+       )
+      
+      # TODO : Test that GDCM was built with option "vtkgdcm"
+      IF(USE_GDCM_VTK)
+       IF(USE_VTK)
+         SET(GDCM_LIBRARIES
+           ${GDCM_LIBRARIES}
+            vtkgdcm  
+            )
+       ENDIF(USE_VTK)
+      ENDIF(USE_GDCM_VTK)
+      
+    ENDIF(GDCM_FOUND)
+  ENDIF(NOT GDCM_FOUND)
 ENDIF(USE_GDCM)
 
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
 IF(USE_GDCM2)
-  # Search GDCM2
-  FIND_PACKAGE(GDCM)
-  # If gdcm found
-  IF(GDCM_FOUND)
-    INCLUDE(${GDCM_USE_FILE})
-    
-    IF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
-      MESSAGE(FATAL_ERROR "gdcm version 2 needed. found ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}. Set GDCM_DIR to the gdcm version 2 directory")
-    ENDIF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
-
-    CREA_DEFINE( USE_GDCM2 )
-    CREA_DEFINE_WITH_VAL( GDCM_NAME_SPACE gdcm )
-
-    MESSAGE ( STATUS "Looking for GDCM2... 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(USE_ITK)
-      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")
-    ENDIF(USE_ITK)
-    
-    MARK_AS_ADVANCED(GDCM_DIR)
-    
-    SET(GDCM_LIBRARIES
+  IF(NOT GDCM_FOUND)
+    # Search GDCM2
+    FIND_PACKAGE(GDCM)
+    # If gdcm found
+    IF(GDCM_FOUND)
+      INCLUDE(${GDCM_USE_FILE})
+      
+      IF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
+       MESSAGE(FATAL_ERROR "gdcm version 2 needed. found ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}. Set GDCM_DIR to the gdcm version 2 directory")
+      ENDIF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
+      
+      CREA_DEFINE( USE_GDCM2 )
+      CREA_DEFINE_WITH_VAL( GDCM_NAME_SPACE gdcm )
+      
+      MESSAGE ( STATUS "=======================================")
+      MESSAGE ( STATUS "Looking for GDCM2... 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(USE_ITK)
+       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")
+      ENDIF(USE_ITK)
+      
+      MARK_AS_ADVANCED(GDCM_DIR)
+      
+      SET(GDCM_LIBRARIES
         ${GDCM_LIBRARIES} 
-      )
-
-# TODO : Test that GDCM was built with option "vtkgdcm"
-    IF(USE_GDCM_VTK)
-     IF(USE_VTK)
-       SET(GDCM_LIBRARIES
-        ${GDCM_LIBRARIES}
-         vtkgdcm  
-         )
-     ENDIF(USE_VTK)
-    ENDIF(USE_GDCM_VTK)
-
-  ENDIF(GDCM_FOUND)
+       )
+      
+      # TODO : Test that GDCM was built with option "vtkgdcm"
+      IF(USE_GDCM_VTK)
+       IF(USE_VTK)
+         SET(GDCM_LIBRARIES
+           ${GDCM_LIBRARIES}
+            vtkgdcm  
+            )
+       ENDIF(USE_VTK)
+      ENDIF(USE_GDCM_VTK)
+      
+    ENDIF(GDCM_FOUND)
+  ENDIF(NOT GDCM_FOUND)
 ENDIF(USE_GDCM2)
 
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
 IF(USE_WXWIDGETS)
-  INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_wxWidgets.cmake)
-  CREA_FIND_WXWIDGETS()
-  CREA_USE_WXWIDGETS()
+  IF(NOT wxWidgets_FOUND)
+    INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseWxWidgets.cmake)
+    CREA_FIND_WXWIDGETS()
+    CREA_USE_WXWIDGETS()
+  ENDIF(NOT wxWidgets_FOUND)
 ENDIF(USE_WXWIDGETS)
 #-----------------------------------------------------------------------------
 
@@ -211,54 +219,76 @@ 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)
+  IF(NOT 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(NOT DOXYGEN)
 ENDIF(USE_DOXYGEN)
 #-----------------------------------------------------------------------------
 
 
 #-----------------------------------------------------------------------------
-IF(USE_LATEX) 
-  FIND_PACKAGE(LATEX REQUIRED)
-  MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
+IF(USE_LATEX)
+  IF (NOT LATEX_COMPILER)
+    FIND_PACKAGE(LATEX REQUIRED)
+    MESSAGE ( STATUS "=======================================")
+    MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
+  ENDIF (NOT 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)
+  IF (NOT TTH_EXECUTABLE)
+    FIND_FILE( TTH_EXECUTABLE NAME tth tth.exe PATHS . $ENV{CREATIS}/tth_exe/ ~/Creatis/tth ~/Creatis/tth_linux)
+    IF (NOT TTH_EXECUTABLE)
+      MESSAGE(FATAL_ERROR "TTH not found (LATEX_tth_CONVERTER). Required to build the HTML documentation from tex source")
+    ELSE (NOT  TTH_EXECUTABLE)
+      MESSAGE ( STATUS "=======================================")
+      MESSAGE ( STATUS "Looking for tth... - found ${TTH_EXECUTABLE}")
+    ENDIF(NOT TTH_EXECUTABLE)
+    MARK_AS_ADVANCED( TTH_EXECUTABLE )
+  ENDIF(NOT TTH_EXECUTABLE)
 ENDIF(USE_TTH)
 #-----------------------------------------------------------------------------
 
+
 #-----------------------------------------------------------------------------
 IF(USE_BOOST)
-  FIND_PACKAGE(Boost REQUIRED)
-  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} )
-    CREA_DEFINE( USE_BOOST )
-    IF(NOT WIN32)
-    SET(BOOST_LIBRARIES
-      boost_signals
-      boost_filesystem
-      )
+  IF(NOT Boost_FOUND)
+    FIND_PACKAGE(Boost REQUIRED)
+    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} )
+      CREA_DEFINE( USE_BOOST )
+      IF(NOT WIN32)
+       IF(NOT APPLE)
+         SET(BOOST_LIBRARIES
+           boost_signals
+           boost_filesystem
+            boost_date_time
+           )
+       ELSE(NOT APPLE)
+         SET(BOOST_LIBRARIES
+           boost_signals-mt
+           boost_filesystem-mt
+           boost_date_time-mt
+            boost_system-mt
+           )
+       ENDIF(NOT APPLE)
       ENDIF(NOT WIN32)
-       MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
-  ELSE(Boost_FOUND)
-    MESSAGE(FATAL_ERROR "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers")
-  ENDIF(Boost_FOUND)
+      MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
+    ELSE(Boost_FOUND)
+      MESSAGE(FATAL_ERROR "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers")
+    ENDIF(Boost_FOUND)
+  ENDIF(NOT Boost_FOUND)
 ENDIF(USE_BOOST)
 #-----------------------------------------------------------------------------