]> Creatis software - crea.git/blob - cmake/CREAMacro_FindAndUseLibraries.cmake
*** empty log message ***
[crea.git] / cmake / CREAMacro_FindAndUseLibraries.cmake
1
2
3 MACRO(CREA_FIND_AND_USE_LIBRARIES)
4
5 #-----------------------------------------------------------------------------
6 IF(USE_VTK)
7   # Search VTK
8   FIND_PACKAGE(VTK)
9   # If vtk found
10   IF(VTK_FOUND)
11     MESSAGE ( STATUS "Looking for VTK... found")
12     MESSAGE ( STATUS "* Dir     = ${VTK_DIR}")
13     MESSAGE ( STATUS "* Version = ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}")
14     INCLUDE(${VTK_USE_FILE})
15     CREA_DEFINE( USE_VTK )
16     SET(VTK_LIBRARIES
17       vtkImaging  vtkGraphics vtkRendering vtkFiltering vtkCommon vtkWidgets
18       vtkVolumeRendering
19       # LG : removed vtkIO because conflict with itktiff lib in ITKIO 
20       ) 
21     IF(NOT USE_ITK)
22      SET(VTK_LIBRARIES ${VTK_LIBRARIES} vtkIO)
23     ENDIF(NOT USE_ITK)
24     MARK_AS_ADVANCED(VTK_DIR)
25   ELSE(VTK_FOUND)
26      message(FATAL_ERROR "VTK_DIR not found")
27   ENDIF(VTK_FOUND)
28 ENDIF(USE_VTK)
29 #-----------------------------------------------------------------------------
30
31
32 #-----------------------------------------------------------------------------
33 IF(USE_ITK)
34   # Search ITK
35   FIND_PACKAGE(ITK)
36   # If itk found
37   IF(ITK_FOUND)
38     MESSAGE ( STATUS "Looking for ITK... found")
39     MESSAGE ( STATUS "* Dir     = ${ITK_DIR}")
40     MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}")
41     INCLUDE(${ITK_USE_FILE})
42     CREA_DEFINE( USE_ITK )
43     SET(ITK_LIBRARIES
44       ITKCommon ITKIO ITKBasicFilters ITKAlgorithms
45       )  
46     MARK_AS_ADVANCED(ITK_DIR)
47    # images compilation option 
48     OPTION ( itk_IMAGE_DIM_2 "itk : Compile 2D images" ON)
49     OPTION ( itk_IMAGE_DIM_3 "itk : Compile 3D images" ON)
50     OPTION ( itk_IMAGE_DIM_4 "itk : Compile 4D images" ON)
51     OPTION ( itk_IMAGE_TYPE_CHAR "itk : Compile char images" ON)
52     OPTION ( itk_IMAGE_TYPE_UCHAR "itk : Compile unsigned char images" ON)
53     OPTION ( itk_IMAGE_TYPE_SHORT "itk : Compile short images" ON)
54     OPTION ( itk_IMAGE_TYPE_USHORT "itk : Compile unsigned short images" ON)
55     OPTION ( itk_IMAGE_TYPE_INT "itk : Compile int images" ON)
56     OPTION ( itk_IMAGE_TYPE_UINT "itk : Compile unsigned int images" ON)
57     OPTION ( itk_IMAGE_TYPE_FLOAT "itk : Compile float images" ON)
58     OPTION ( itk_IMAGE_TYPE_DOUBLE "itk : Compile double images" ON)
59     
60     IF ( itk_IMAGE_DIM_2 ) 
61       CREA_DEFINE( BBTK_ITK_IMAGE_DIM_2 )
62     ENDIF ( itk_IMAGE_DIM_2 )
63     
64     IF ( itk_IMAGE_DIM_3 ) 
65       CREA_DEFINE( BBTK_ITK_IMAGE_DIM_3 )
66     ENDIF ( itk_IMAGE_DIM_3 )
67     
68     IF ( itk_IMAGE_DIM_4 ) 
69       CREA_DEFINE( BBTK_ITK_IMAGE_DIM_4 )
70     ENDIF ( itk_IMAGE_DIM_4 )
71
72     IF ( itk_IMAGE_TYPE_CHAR ) 
73       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int8_t )
74     ENDIF ( itk_IMAGE_TYPE_CHAR )
75
76     IF ( itk_IMAGE_TYPE_UCHAR ) 
77       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint8_t )
78     ENDIF ( itk_IMAGE_TYPE_UCHAR )
79     
80     IF ( itk_IMAGE_TYPE_SHORT ) 
81       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int16_t )
82     ENDIF ( itk_IMAGE_TYPE_SHORT )
83     
84     IF ( itk_IMAGE_TYPE_USHORT ) 
85       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint16_t )
86     ENDIF ( itk_IMAGE_TYPE_USHORT )
87     
88     IF ( itk_IMAGE_TYPE_INT ) 
89       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_int32_t )
90     ENDIF ( itk_IMAGE_TYPE_INT )
91     
92     IF ( itk_IMAGE_TYPE_UINT ) 
93       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_uint32_t )
94     ENDIF ( itk_IMAGE_TYPE_UINT )
95     
96     IF ( itk_IMAGE_TYPE_FLOAT ) 
97       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_float )
98     ENDIF ( itk_IMAGE_TYPE_FLOAT )
99     
100     IF ( itk_IMAGE_TYPE_DOUBLE ) 
101       CREA_DEFINE( BBTK_ITK_IMAGE_TYPE_double )
102     ENDIF ( itk_IMAGE_TYPE_DOUBLE )
103   ELSE(ITK_FOUND)
104      message(FATAL_ERROR "ITK_DIR not found")
105   ENDIF(ITK_FOUND)
106 ENDIF(USE_ITK)
107 #-----------------------------------------------------------------------------
108
109
110 #-----------------------------------------------------------------------------
111 IF(USE_GDCM)
112   # Search GDCM
113   FIND_PACKAGE(GDCM)
114   # If gdcm found
115   IF(GDCM_FOUND)
116     INCLUDE(${GDCM_USE_FILE})
117     CREA_DEFINE( USE_GDCM )
118
119     MESSAGE ( STATUS "Looking for GDCM... found")
120     MESSAGE ( STATUS "* Dir       = ${GDCM_DIR}")
121     MESSAGE ( STATUS "* Version   = ${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
122     MESSAGE ( STATUS "* Namespace = ${GDCM_NAME_SPACE}")
123
124     # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with 
125     # embedded gdcm in ITK and will result in hard seg faults !
126     IF(USE_ITK)
127       IF (GDCM_NAME_SPACE STREQUAL "gdcm")
128         MESSAGE(FATAL_ERROR "GDCM_NAME_SPACE value is 'gdcm' which conflicts with ITK embededd gdcm namespace : rebuild gdcm with another GDCM_NAME_SPACE value")
129       ENDIF (GDCM_NAME_SPACE STREQUAL "gdcm")
130     ENDIF(USE_ITK)
131     
132     MARK_AS_ADVANCED(GDCM_DIR)
133     
134     SET(GDCM_LIBRARIES
135         ${GDCM_LIBRARIES} 
136       )
137
138 # TODO : Test that GDCM was built with option "vtkgdcm"
139     IF(USE_GDCM_VTK)
140      IF(USE_VTK)
141        SET(GDCM_LIBRARIES
142          ${GDCM_LIBRARIES}
143          vtkgdcm  
144          )
145      ENDIF(USE_VTK)
146     ENDIF(USE_GDCM_VTK)
147
148   ENDIF(GDCM_FOUND)
149 ENDIF(USE_GDCM)
150
151 #-----------------------------------------------------------------------------
152
153 #-----------------------------------------------------------------------------
154 IF(USE_WXWIDGETS)
155   INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_wxWidgets.cmake)
156   CREA_FIND_WXWIDGETS()
157   CREA_USE_WXWIDGETS()
158 ENDIF(USE_WXWIDGETS)
159 #-----------------------------------------------------------------------------
160
161
162
163 #-----------------------------------------------------------------------------
164 IF(USE_DOXYGEN) 
165   FIND_PACKAGE(Doxygen REQUIRED)
166 #  MESSAGE(STATUS "Looking for doxygen... - found ${DOXYGEN}")
167   #  IF(DOXYGEN)
168 #    
169 #  ELSE(DOXYGEN)
170 #    MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
171 #  ENDIF(DOXYGEN)
172 ENDIF(USE_DOXYGEN)
173 #-----------------------------------------------------------------------------
174
175
176 #-----------------------------------------------------------------------------
177 IF(USE_LATEX) 
178   FIND_PACKAGE(LATEX REQUIRED)
179   MESSAGE(STATUS "Looking for latex... - found ${LATEX_COMPILER}")
180 ENDIF(USE_LATEX) 
181 #-----------------------------------------------------------------------------
182
183 #-----------------------------------------------------------------------------
184 IF(USE_TTH) 
185   FIND_FILE(LATEX_tth_CONVERTER NAME tth tth.exe PATHS . $ENV{CREATIS}/tth_exe/ ~/Creatis/tth ~/Creatis/tth_linux)
186   IF (NOT LATEX_tth_CONVERTER)
187     MESSAGE(FATAL_ERROR "TTH not found (LATEX_tth_CONVERTER). Required to build the HTML documentation from tex source")
188   ELSE (NOT LATEX_tth_CONVERTER)
189     MESSAGE(STATUS "Looking for tth... - found ${LATEX_tth_CONVERTER}")
190   ENDIF(NOT LATEX_tth_CONVERTER)
191   MARK_AS_ADVANCED(LATEX_tth_CONVERTER)
192 ENDIF(USE_TTH)
193 #-----------------------------------------------------------------------------
194
195 #-----------------------------------------------------------------------------
196 IF(USE_BOOST)
197   FIND_PACKAGE(Boost REQUIRED)
198   IF(Boost_FOUND)
199     MESSAGE(STATUS "Looking for boost C++ library... - found in ${Boost_INCLUDE_DIR}")
200     INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
201     LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS} )
202     CREA_DEFINE( USE_BOOST )
203     IF(NOT WIN32)
204     SET(BOOST_LIBRARIES
205       boost_signals
206       boost_filesystem
207       )
208       ENDIF(NOT WIN32)
209         MARK_AS_ADVANCED(Boost_INCLUDE_DIR)
210   ELSE(Boost_FOUND)
211     MESSAGE(FATAL_ERROR "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers")
212   ENDIF(Boost_FOUND)
213 ENDIF(USE_BOOST)
214 #-----------------------------------------------------------------------------
215
216
217 ENDMACRO(CREA_FIND_AND_USE_LIBRARIES)