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