3 MACRO(CREA_FIND_AND_USE_LIBRARIES)
10 set(USE_DEBUG_LIB "" CACHE BOOL "Use Debug Libraries" )
12 #-----------------------------------------------------------------------------
13 # If one can invoke this macro then crea has already been found !!
14 # However if one whishes to link against crea and crea was built
15 # with wx or vtk then we have to find them.
16 # This USE_CREA var is made to resolve this dependency.
18 IF(CREA_BUILT_WITH_WX)
20 ENDIF(CREA_BUILT_WITH_WX)
21 IF(CREA_BUILT_WITH_VTK)
23 ENDIF(CREA_BUILT_WITH_VTK)
25 #-----------------------------------------------------------------------------
28 #-----------------------------------------------------------------------------
33 INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseQt.cmake)
34 #FIND_PACKAGE(Qt4 REQUIRED)
37 MESSAGE ( STATUS "=======================================")
38 MESSAGE ( STATUS "Looking for QT4... found")
39 MESSAGE ( STATUS "* Inc Dir = ${QT_INCLUDE_DIR}")
40 MESSAGE ( STATUS "* Version = ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
41 INCLUDE(${QT_USE_FILE})
51 #MESSAGE ( "======================================= SET CMAKE USE_WT JFGA CREAMacro_FindAndUseLibraries.cmake")
55 #-----------------------------------------------------------------------------
57 #-----------------------------------------------------------------------------
59 INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseVTK.cmake)
60 CREA_FIND_AND_USE_VTK()
62 #-----------------------------------------------------------------------------
64 #-----------------------------------------------------------------------------
66 IF(NOT KWWidgets_FOUND)
68 FIND_PACKAGE(KWWidgets)
71 MESSAGE ( STATUS "=======================================")
72 MESSAGE ( STATUS "Looking for KWWidgets... found")
73 MESSAGE ( STATUS "* Dir = ${KWWidgets_DIR}")
74 MESSAGE ( STATUS "* Version = ${KWWidgets_MAJOR_VERSION}.${KWWidgets_MINOR_VERSION}.${KWWidgets_BUILD_VERSION}")
76 # KWWidgets must not search again for vtk !
77 SET(KWWidgets_NO_USE_VTK ON)
80 INCLUDE(${KWWidgets_USE_FILE})
81 CREA_DEFINE( USE_KWWIDGETS )
82 SET(KWWIDGETS_LIBRARIES
83 ${KWWidgets_LIBRARIES}
85 MARK_AS_ADVANCED(KWWidgets_DIR)
87 message(FATAL_ERROR "KWWidgets_DIR not found")
88 ENDIF(KWWidgets_FOUND)
89 ENDIF(NOT KWWidgets_FOUND)
91 #-----------------------------------------------------------------------------
94 # Always let ITK *BEFORE* GDCM
95 # It allows to use 'system installed gdcm' instead of 'itk embedded gdcm'
98 #-----------------------------------------------------------------------------
106 MESSAGE ( STATUS "=======================================")
107 MESSAGE ( STATUS "Looking for ITK... found")
108 MESSAGE ( STATUS "* Dir = ${ITK_DIR}")
109 MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}")
110 SET(SKIP_ITK_BUILD_SETTINGS_FILE ON)
111 INCLUDE(${ITK_USE_FILE})
112 CREA_DEFINE( USE_ITK )
113 CREA_DEFINE( _USE_ITK_ )
114 If (${ITK_VERSION_MAJOR} MATCHES "4" OR ${ITK_VERSION_MAJOR} MATCHES "5" )
115 MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}")
116 SET(ITK_LIBRARIES ${ITK_LIBRARIES})
117 MESSAGE ( STATUS "${ITK_LIBRARIES}")
119 SET(ITK_LIBRARIES ITKCommon ITKIO ITKBasicFilters ITKAlgorithms)
121 MARK_AS_ADVANCED(ITK_DIR)
123 message(FATAL_ERROR "ITK_DIR not found")
127 #-----------------------------------------------------------------------------
130 #-----------------------------------------------------------------------------
134 MESSAGE(ERROR "CANNOT USE BOTH gdcm AND gdcm2 !")
142 INCLUDE(${GDCM_USE_FILE})
143 CREA_DEFINE( USE_GDCM )
145 MESSAGE ( STATUS "=======================================")
146 MESSAGE ( STATUS "Looking for GDCM... found")
147 MESSAGE ( STATUS "* Dir = ${GDCM_DIR}")
148 MESSAGE ( STATUS "* Version = ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
149 MESSAGE ( STATUS "* Namespace = ${GDCM_NAME_SPACE}")
151 # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with
152 # embedded gdcm in ITK and will result in hard seg faults !
154 IF (GDCM_NAME_SPACE STREQUAL "gdcm")
155 MESSAGE(FATAL_ERROR "GDCM_NAME_SPACE value is 'gdcm' which conflicts with ITK embededd gdcm namespace : rebuild gdcm with another GDCM_NAME_SPACE value")
156 ENDIF (GDCM_NAME_SPACE STREQUAL "gdcm")
159 MARK_AS_ADVANCED(GDCM_DIR)
165 # TODO : Test that GDCM was built with option "vtkgdcm"
176 MESSAGE(FATAL_ERROR "GDCM not found....")
179 ENDIF(NOT GDCM_FOUND)
182 #-----------------------------------------------------------------------------
186 MESSAGE(ERROR "CANNOT USE BOTH gdcm AND gdcm2 !")
189 # IF(NOT USE_ITK) # JPR : ITK vs GDCM (avoid cmake break)
192 FIND_PACKAGE(GDCM REQUIRED)
193 INCLUDE(${GDCM_USE_FILE})
195 IF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
196 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")
197 ENDIF(NOT ${GDCM_MAJOR_VERSION} EQUAL 2)
199 CREA_DEFINE( USE_GDCM2 )
200 MARK_AS_ADVANCED(GDCM_DIR)
201 CREA_DEFINE_WITH_VAL( GDCM_NAME_SPACE gdcm )
203 MESSAGE ( STATUS "=======================================")
204 MESSAGE ( STATUS "Looking for GDCM2... found")
205 MESSAGE ( STATUS "* Dir = ${GDCM_DIR}")
206 MESSAGE ( STATUS "* Version = ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
207 MESSAGE ( STATUS "* Namespace = ${GDCM_NAME_SPACE}")
209 # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with
210 # embedded gdcm in ITK and will result in hard seg faults !
211 INCLUDE_DIRECTORIES(${GDCM_INCLUDE_DIRS})
212 LINK_DIRECTORIES( ${GDCM_LIBRARY_DIRS})
249 # ENDIF(NOT USE_ITK) # JPR : ITK vs GDCM (avoid cmake break)
253 #-----------------------------------------------------------------------------
255 #-----------------------------------------------------------------------------
257 #-------------------- JFGA ---
259 MESSAGE ( "======================================= JFGA ------------USE WT CREAMacro_FindAndUseLibraries.cmake")
260 INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseWt.cmake)
264 #-----------------------------------------------------------------------------
266 IF(NOT wxWidgets_FOUND)
268 INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseWxWidgets.cmake)
269 CREA_FIND_WXWIDGETS(${USE_DEBUG_LIB})
274 ENDIF(NOT wxWidgets_FOUND)
276 #-----------------------------------------------------------------------------
280 #-----------------------------------------------------------------------------
283 MESSAGE ( STATUS "=======================================")
284 FIND_PACKAGE(Doxygen REQUIRED)
285 # MESSAGE(STATUS "Looking for doxygen... - found ${DOXYGEN}")
289 # MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
292 #-----------------------------------------------------------------------------
295 #-----------------------------------------------------------------------------
297 IF (NOT LATEX_COMPILER)
298 FIND_PACKAGE(LATEX REQUIRED)
299 MESSAGE ( STATUS "=======================================")
300 MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
302 MESSAGE(FATAL_ERROR "LATEX_COMPILER NOT FOUND. Example:latex (MacOS:/opt/local/bin/latex)")
303 ENDIF (NOT LATEX_FOUND)
304 ENDIF (NOT LATEX_COMPILER)
307 #-----------------------------------------------------------------------------
309 #-----------------------------------------------------------------------------
311 IF (NOT TTH_EXECUTABLE)
312 FIND_FILE( TTH_EXECUTABLE NAME tth tth.exe PATHS . $ENV{CREATIS}/tth_exe/ ~/Creatis/tth ~/Creatis/tth_linux $ENV{TTH})
314 IF (NOT TTH_EXECUTABLE)
315 MESSAGE(FATAL_ERROR "TTH not found (LATEX_tth_CONVERTER). Required to build the HTML documentation from tex source")
316 ELSE (NOT TTH_EXECUTABLE)
317 MESSAGE ( STATUS "=======================================")
318 MESSAGE ( STATUS "Looking for tth... - found ${TTH_EXECUTABLE}")
319 ENDIF(NOT TTH_EXECUTABLE)
320 MARK_AS_ADVANCED( TTH_EXECUTABLE )
321 ENDIF(NOT TTH_EXECUTABLE)
323 #-----------------------------------------------------------------------------
324 #-----------------------------------------------------------------------------
327 add_definitions( -DBOOST_ALL_NO_LIB )
328 add_definitions( -DBOOST_ALL_DYN_LINK )
331 FIND_PACKAGE(Boost COMPONENTS filesystem-mgw71 system-mgw71 signals-mgw71 date_time-mgw71 thread-mgw71 regex-mgw71 program_options-mgw71 REQUIRED)
333 set( Boost_INCLUDE_DIR $ENV{BOOST_ROOT}/include/boost-1_69)
334 FIND_PACKAGE(Boost COMPONENTS filesystem-mgw73-mt-x64-1_69 system-mgw73-mt-x64-1_69 date_time-mgw73-mt-x64-1_69 thread-mgw73-mt-x64-1_69 regex-mgw73-mt-x64-1_69 program_options-mgw73-mt-x64-1_69 REQUIRED)
337 # FIND_PACKAGE(Boost COMPONENTS filesystem system signals date_time thread regex program_options REQUIRED)
338 FIND_PACKAGE(Boost COMPONENTS filesystem system date_time thread regex program_options REQUIRED)
341 ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=3)
342 ADD_DEFINITIONS(-DBOOST_MAYOR_VERSION=${Boost_MAJOR_VERSION})
343 ADD_DEFINITIONS(-DBOOST_MINOR_VERSION=${Boost_MINOR_VERSION})
344 MESSAGE ( STATUS "=======================================")
345 MESSAGE ( STATUS "Looking for boost C++ library... - found in ${Boost_INCLUDE_DIR}")
346 INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
347 LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS})
349 CREA_DEFINE( USE_BOOST )
350 ADD_DEFINITIONS(-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
355 # FCY with cmake boost, it's useless.
356 # But if it is not working, uncomment
359 # SET(BOOST_LIBRARIES
360 # boost_signals-vc90-mt-gd-1_40
361 # boost_filesystem-vc90-mt-gd-1_40
362 # boost_date_time-vc90-mt-gd-1_40
363 # #what about boost_thread? JPR
365 # ELSE(NOT USE_DEBUG_LIB)
366 # SET(BOOST_LIBRARIES
367 # boost_signals-vc90-mt-1_40
368 # boost_filesystem-vc90-mt-1_40
369 # boost_date_time-vc90-mt-1_40
371 # ENDIF(USE_DEBUG_LIB)
374 message("EED 2021 CREAMacro_FindAndUseLibraries " ${Boost_LIBRARIES} )
382 #EED boost_program_options-mt
385 #EED boost_signals-mt
386 #EED boost_filesystem-mt
387 #EED boost_date_time-mt
389 #EED boost_program_options-mt
396 MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
397 MARK_AS_ADVANCED(Boost_LIBRARY_DIRS)
400 MESSAGE( STATUS "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers")
402 ENDIF(NOT Boost_FOUND)
406 #-----------------------------------------------------------
413 SET(XERCES_LIB_DIR $ENV{XERCES_DIR})
415 IF(NOT XERCES_LIB_DIR)
416 MESSAGE(FATAL_ERROR "XERCES_DIR not found")
417 ELSE(NOT XERCES_LIB_DIR)
419 INCLUDE_DIRECTORIES( ${XERCES_LIB_DIR}/include )
420 LINK_DIRECTORIES( ${XERCES_LIB_DIR}/lib )
422 ENDIF(NOT XERCES_LIB_DIR)
426 set(XERCES_LIBRARIES xerces-c_3D)
428 set(XERCES_LIBRARIES xerces-c_3)
432 #EED 2019-07-03 set(XERCES_LIBRARIES xerces-c_3D)
433 set(XERCES_LIBRARIES xerces-c)
435 #EED 2019-07-03 set(XERCES_LIBRARIES xerces-c_3)
436 set(XERCES_LIBRARIES xerces-c)
440 MARK_AS_ADVANCED(XERCES_LIB_DIR)
446 SET(XERCES_LIBRARIES xerces-c )
447 INCLUDE_DIRECTORIES( /opt/local/include )
448 LINK_DIRECTORIES( /opt/local/lib )
451 SET(XERCES_LIBRARIES xerces-c )
452 INCLUDE_DIRECTORIES( /usr/local/include )
453 LINK_DIRECTORIES( /usr/local/lib /usr/lib)
454 #FIND_PACKAGE(Xerces)
457 # INCLUDE_DIRECTORIES( ${XERCES_INCLUDE_DIR} )
465 ENDMACRO(CREA_FIND_AND_USE_LIBRARIES)