]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKFindLibraries.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / BBTKFindLibraries.cmake
1
2
3 #-----------------------------------------------------------------------------
4 #OPTION(USE_VTK "Build VTK-based black boxes" OFF)
5 IF(USE_VTK)
6   # Search VTK
7   FIND_PACKAGE(VTK)
8   # If vtk found
9   IF(VTK_FOUND)
10     MESSAGE ( STATUS "Looking for VTK... found")
11     MESSAGE ( STATUS "* Dir     = ${VTK_DIR}")
12     MESSAGE ( STATUS "* Version = ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}")
13     INCLUDE(${VTK_USE_FILE})
14     ADD_DEF( _USE_VTK_ )
15     SET(BBTK_VTK_LIBRARIES
16       vtkCommon     # Mandatory
17       vtkFiltering  # vtkImageData
18       vtkRendering  # vtkProp3D
19       vtkWidgets    # vtkImagePlaneWidget
20       vtkIO         # vtkMetaImageReader/Writer
21       vtkImaging    # filters such as vtkImageAnisotropicDiffusion3D
22       vtkGraphics   # vtkContourFilter, sources
23       vtkVolumeRendering # Mappers 
24 #      vtkGenericFiltering
25      ) 
26     MARK_AS_ADVANCED(VTK_DIR)
27   ELSE(VTK_FOUND)
28      message(FATAL_ERROR "VTK_DIR not found")
29   ENDIF(VTK_FOUND)
30 ENDIF(USE_VTK)
31 #-----------------------------------------------------------------------------
32
33
34 #-----------------------------------------------------------------------------
35 #OPTION(USE_ITK "Build ITK-based black boxes" OFF)
36 IF(USE_ITK)
37   # Search ITK
38   FIND_PACKAGE(ITK)
39   # If itk found
40   IF(ITK_FOUND)
41     MESSAGE ( STATUS "Looking for ITK... found")
42     MESSAGE ( STATUS "* Dir     = ${ITK_DIR}")
43     MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}")
44     INCLUDE(${ITK_USE_FILE})
45     ADD_DEF( _USE_ITK_ )
46     SET(BBTK_ITK_LIBRARIES
47       ITKCommon ITKIO ITKBasicFilters ITKAlgorithms
48       )  
49     MARK_AS_ADVANCED(ITK_DIR)
50    # images compilation option 
51     OPTION ( itk_IMAGE_DIM_2 "itk : Compile 2D images" ON)
52     OPTION ( itk_IMAGE_DIM_3 "itk : Compile 3D images" ON)
53     OPTION ( itk_IMAGE_DIM_4 "itk : Compile 4D images" ON)
54     OPTION ( itk_IMAGE_TYPE_CHAR "itk : Compile char images" ON)
55     OPTION ( itk_IMAGE_TYPE_UCHAR "itk : Compile unsigned char images" ON)
56     OPTION ( itk_IMAGE_TYPE_SHORT "itk : Compile short images" ON)
57     OPTION ( itk_IMAGE_TYPE_USHORT "itk : Compile unsigned short images" ON)
58     OPTION ( itk_IMAGE_TYPE_INT "itk : Compile int images" ON)
59     OPTION ( itk_IMAGE_TYPE_UINT "itk : Compile unsigned int images" ON)
60     OPTION ( itk_IMAGE_TYPE_FLOAT "itk : Compile float images" ON)
61     OPTION ( itk_IMAGE_TYPE_DOUBLE "itk : Compile double images" ON)
62     
63     IF ( itk_IMAGE_DIM_2 ) 
64       ADD_DEF( BBTK_ITK_IMAGE_DIM_2 )
65     ENDIF ( itk_IMAGE_DIM_2 )
66     
67     IF ( itk_IMAGE_DIM_3 ) 
68       ADD_DEF( BBTK_ITK_IMAGE_DIM_3 )
69     ENDIF ( itk_IMAGE_DIM_3 )
70     
71     IF ( itk_IMAGE_DIM_4 ) 
72       ADD_DEF( BBTK_ITK_IMAGE_DIM_4 )
73     ENDIF ( itk_IMAGE_DIM_4 )
74
75     IF ( itk_IMAGE_TYPE_CHAR ) 
76       ADD_DEF( BBTK_ITK_IMAGE_TYPE_int8_t )
77     ENDIF ( itk_IMAGE_TYPE_CHAR )
78
79     IF ( itk_IMAGE_TYPE_UCHAR ) 
80       ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint8_t )
81     ENDIF ( itk_IMAGE_TYPE_UCHAR )
82     
83     IF ( itk_IMAGE_TYPE_SHORT ) 
84       ADD_DEF( BBTK_ITK_IMAGE_TYPE_int16_t )
85     ENDIF ( itk_IMAGE_TYPE_SHORT )
86     
87     IF ( itk_IMAGE_TYPE_USHORT ) 
88       ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint16_t )
89     ENDIF ( itk_IMAGE_TYPE_USHORT )
90     
91     IF ( itk_IMAGE_TYPE_INT ) 
92       ADD_DEF( BBTK_ITK_IMAGE_TYPE_int32_t )
93     ENDIF ( itk_IMAGE_TYPE_INT )
94     
95     IF ( itk_IMAGE_TYPE_UINT ) 
96       ADD_DEF( BBTK_ITK_IMAGE_TYPE_uint32_t )
97     ENDIF ( itk_IMAGE_TYPE_UINT )
98     
99     IF ( itk_IMAGE_TYPE_FLOAT ) 
100       ADD_DEF( BBTK_ITK_IMAGE_TYPE_float )
101     ENDIF ( itk_IMAGE_TYPE_FLOAT )
102     
103     IF ( itk_IMAGE_TYPE_DOUBLE ) 
104       ADD_DEF( BBTK_ITK_IMAGE_TYPE_double )
105     ENDIF ( itk_IMAGE_TYPE_DOUBLE )
106   ELSE(ITK_FOUND)
107      message(FATAL_ERROR "ITK_DIR not found")
108   ENDIF(ITK_FOUND)
109 ENDIF(USE_ITK)
110 #-----------------------------------------------------------------------------
111
112
113 #-----------------------------------------------------------------------------
114 #OPTION(USE_GDCM "Build GDCM-based black boxes" OFF)
115 IF(USE_GDCM)
116   # Search GDCM
117   FIND_PACKAGE(GDCM)
118   # If gdcm found
119   IF(GDCM_FOUND)
120     INCLUDE(${GDCM_USE_FILE})
121     ADD_DEF( _USE_GDCM_ )
122
123     MESSAGE ( STATUS "Looking for GDCM... found")
124     MESSAGE ( STATUS "* Dir       = ${GDCM_DIR}")
125     MESSAGE ( STATUS "* Version   = ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
126     MESSAGE ( STATUS "* Namespace = ${GDCM_NAME_SPACE}")
127
128     # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with 
129     # embedded gdcm in ITK and will result in hard seg faults !
130     IF (GDCM_NAME_SPACE STREQUAL "gdcm")
131       MESSAGE(FATAL_ERROR "GDCM_NAME_SPACE value is 'gdcm' which conflicts with ITK embededd gdcm namespace : rebuild gdcm with another GDCM_NAME_SPACE value")
132     ENDIF (GDCM_NAME_SPACE STREQUAL "gdcm")
133
134     MARK_AS_ADVANCED(GDCM_DIR)
135     
136     SET(BBTK_GDCM_LIBRARIES
137 # TO DO : USE GDCM LINK LIBRARIES !!!
138 # IF gdcm WAS NOT COMPILE WITH VTK THE ABOVE FORCED LINK WITH vtkgdcm DOES NOT WORK
139         ${GDCM_LIBRARIES} 
140 #gdcm  gdcmjpeg8  gdcmjpeg12  gdcmjpeg16
141       )
142
143           
144 #     IF(USE_VTK )
145 #         SET(BBTK_GDCM_LIBRARIES
146 #                  ${BBTK_GDCM_LIBRARIES}
147 #                   vtkgdcm  
148 #         )
149 #     ENDIF(USE_VTK)
150
151   ENDIF(GDCM_FOUND)
152 ENDIF(USE_GDCM)
153
154 #-----------------------------------------------------------------------------
155
156 #-----------------------------------------------------------------------------
157 IF(USE_WXWIDGETS)
158   INCLUDE(${BBTK_CMAKE_DIR}/BBTKWxWidgets.cmake)
159   BBTK_FIND_WXWIDGETS()
160   BBTK_USE_WXWIDGETS()
161 ENDIF(USE_WXWIDGETS)
162 #-----------------------------------------------------------------------------
163
164
165
166 #-----------------------------------------------------------------------------
167 IF(USE_DOXYGEN) 
168   FIND_PACKAGE(Doxygen REQUIRED)
169 #  MESSAGE(STATUS "Looking for doxygen... - found ${DOXYGEN}")
170   IF(DOXYGEN)
171     
172   ELSE(DOXYGEN)
173     MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
174   ENDIF(DOXYGEN)
175 ENDIF(USE_DOXYGEN)
176 #-----------------------------------------------------------------------------
177
178
179 #-----------------------------------------------------------------------------
180 IF(USE_LATEX) 
181   FIND_PACKAGE(LATEX REQUIRED)
182   MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
183 ENDIF(USE_LATEX) 
184 #-----------------------------------------------------------------------------
185
186 #-----------------------------------------------------------------------------
187 IF(USE_TTH) 
188   FIND_FILE(LATEX_tth_CONVERTER NAME tth tth.exe PATHS . $ENV{CREATIS}/tth_exe/ ~/Creatis/tth ~/Creatis/tth_linux)
189   IF (NOT LATEX_tth_CONVERTER)
190     MESSAGE(FATAL_ERROR "TTH not found (LATEX_tth_CONVERTER). Required to build the HTML documentation from tex source")
191   ELSE (NOT LATEX_tth_CONVERTER)
192     MESSAGE(STATUS "Looking for tth... - found ${LATEX_tth_CONVERTER}")
193   ENDIF(NOT LATEX_tth_CONVERTER)
194   MARK_AS_ADVANCED(LATEX_tth_CONVERTER)
195 ENDIF(USE_TTH)
196 #-----------------------------------------------------------------------------
197
198 #-----------------------------------------------------------------------------
199 IF(USE_BOOST)
200   IF(BBTK_USE_SHIPPED_BOOST)
201     MESSAGE(STATUS "bbtk uses shipped boost C++ library (${BBTK_SHIPPED_BOOST})")
202     INCLUDE_DIRECTORIES( 
203       ${PROJECT_SOURCE_DIR}/kernel/src/ThirdParty/${BBTK_SHIPPED_BOOST})
204
205     # TO DO : CLEANLY BLOCK auto_link.hpp INCLUSION 
206     #ADD_DEF(BOOST_SIGNALS_NO_LIB)
207     SET(BBTK_BOOST_LIBRARIES
208       bbtk_boost_signals
209       )  
210
211   ELSE(BBTK_USE_SHIPPED_BOOST)
212     FIND_PACKAGE(Boost REQUIRED)
213     MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
214     IF(Boost_FOUND)
215       MESSAGE(STATUS "Looking for boost C++ library... - found in ${Boost_INCLUDE_DIR}")
216       INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
217       LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS} )
218       SET(BBTK_BOOST_LIBRARIES
219         boost_signals
220         )
221     ELSE(Boost_FOUND)
222       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}")
223     ENDIF(Boost_FOUND)
224   ENDIF(BBTK_USE_SHIPPED_BOOST)
225 ENDIF(USE_BOOST)
226 #-----------------------------------------------------------------------------