Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CamiTKApplication.h
Go to the documentation of this file.
56 
57  #########################################################################
58  # #
59  # ARGUMENTS PARSING #
60  # #
61  # * Use a macro to create the CMAKE variables according to the #
62  # provided options as input. #
63  # #
64  #########################################################################
65 
66  get_directory_name(${CMAKE_CURRENT_SOURCE_DIR} APPLICATION_NAME)
67 
68  parse_arguments(${APPLICATION_NAME_CMAKE}
69  "NEEDS_CEP_LIBRARIESNEEDS_TOOLNEEDS_COMPONENT_EXTENSIONNEEDS_ACTION_EXTENSIONDEFINESCXX_FLAGSADDITIONAL_SOURCESCEP_NAMEDESCRIPTIONEXTERNAL_LIBRARIESINCLUDE_DIRECTORIES" # possible lists
70  "DISABLEDNEEDS_QT_MODULESNEEDS_ITKNEEDS_QTXMLNEEDS_XSDNEEDS_XERCESCNEEDS_PYTHON" # possible options
71  ${ARGN}
72  )
73 
74 
75 
76  #########################################################################
77  # #
78  # CREATE CMAKE VARIABLES #
79  # #
80  # * Create required and usefull CMake variables for the macro #
81  # #
82  #########################################################################
83 
84  # CMAKE CACHE VARIABLE
85  # if it is the first cmake run, create the application variable with a correct initial value
86  if(NOT APPLICATION_${APPLICATION_NAME_CMAKE}_INTERNAL)
87  # add option to enable/disable this extension and set it to true by default
88  # Building the extension can be disabled by giving the argument DISABLED to the macro
89  # or by passing the flag -D${TYPE_EXTENSION_CMAKE}_${APPLICATION_NAME_CMAKE}_DISABLED:BOOL=TRUE
90  if(${APPLICATION_NAME_CMAKE}_DISABLED)
91  set(APPLICATION_${APPLICATION_NAME_CMAKE}_ENABLED FALSE)
92  else()
93  set(APPLICATION_${APPLICATION_NAME_CMAKE}_ENABLED TRUE)
94  endif()
95  set(APPLICATION_${APPLICATION_NAME_CMAKE} ${APPLICATION_${APPLICATION_NAME_CMAKE}_ENABLED} CACHE BOOL "Build application ${APPLICATION_NAME}")
96  set(APPLICATION_${APPLICATION_NAME_CMAKE}_INTERNAL TRUE CACHE INTERNAL "Is variable APPLICATION_${APPLICATION_NAME} already created?")
97  endif()
98 
99  # APPLICATION TARGET NAME
100  if (PACKAGING_NSIS)
101  # NSIS requires that cpack component names do not feature space or "-" characters
102  set(APPLICATION_TARGET_NAME application_${APPLICATION_NAME})
103  else()
104  set(APPLICATION_TARGET_NAME application-${APPLICATION_NAME})
105  endif()
106 
107 
108 
109  # if this extension is enabled, do everything needed
110  # otherwise... do nothing
111  if (APPLICATION_${APPLICATION_NAME_CMAKE})
112 
113  message(STATUS "Building application ${APPLICATION_NAME}")
114 
115 
116 
117  #########################################################################
118  # #
119  # INCLUDE DIRECTORIES #
120  # #
121  # * Include basic directories where to look header files #
122  # * Include also additional user provided directories #
123  # * These directories are used for compilation step #
124  # #
125  #########################################################################
126  # BASIC DIRECTORIES
127  include_directories(${CAMITK_INCLUDE_DIRECTORIES})
128  include_directories(${CMAKE_CURRENT_BINARY_DIR})
129  include_directories(${CMAKE_CURRENT_SOURCE_DIR})
130 
131  # USER INPUT DIRECTORIES
132  include_directories(${${APPLICATION_NAME_CMAKE}_INCLUDE_DIRECTORIES})
133 
134 
135 
136  #########################################################################
137  # #
138  # GATHER RESSOURCES #
139  # #
140  # * get all the headers (.h) and source files (.cpp) of the project #
141  # * create the needed Qt files (using moc and uic) #
142  # #
143  #########################################################################
144 
145  # get all headers, sources and do what is needed for Qt
146  # one need to do this just before the add_library so that all defines, include directories and link directories
147  # are set properly (gather_headers_and_sources include the call to Qt moc and uic)
148  gather_headers_and_sources(${APPLICATION_NAME})
149 
150 
151 
152  #########################################################################
153  # #
154  # ADDITIONAL KNOWN LIBRARY DEPENDENCIES #
155  # #
156  # * Look for specific library needed #
157  # * Specific libraries are specified as option with the #
158  # NEEDS_LIBRARY syntax (see macro syntax for more options) #
159  # * Backward compatibility : Warn user if using old NEEDS_TOOL syntax #
160  # #
161  #########################################################################
162 
163  # Looking for ITK
164  set(ITK_LIBRARIES "")
165  if(${APPLICATION_NAME_CMAKE}_NEEDS_ITK) # ITK is required
166  if (MSVC) # Visual Studio compiler
167  if(MSVC90 OR MSVC10)
168  find_package(ITK REQUIRED)
169  if(ITK_FOUND)
170  message(STATUS "${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} : Found suitable version of ITK : ${ITK_VERSION} (required is 3.20.1)")
171  include(${ITK_USE_FILE})
172  set(ITK_LIBRARIES
173  debug ITKAlgorithms${CAMITK_DEBUG_POSTFIX}
174  optimized ITKAlgorithms
175  debug ITKBasicFilters${CAMITK_DEBUG_POSTFIX}
176  optimized ITKBasicFilters
177  debug ITKCommon${CAMITK_DEBUG_POSTFIX}
178  optimized ITKCommon
179  debug ITKIO${CAMITK_DEBUG_POSTFIX}
180  optimized ITKIO
181  debug ITKNrrdIO${CAMITK_DEBUG_POSTFIX}.lib
182  debug itkgdcm${CAMITK_DEBUG_POSTFIX}.lib
183  debug itkjpeg12${CAMITK_DEBUG_POSTFIX}.lib
184  debug itkjpeg16${CAMITK_DEBUG_POSTFIX}.lib
185  debug itkopenjpeg${CAMITK_DEBUG_POSTFIX}.lib
186  debug itkpng${CAMITK_DEBUG_POSTFIX}.lib
187  debug itktiff${CAMITK_DEBUG_POSTFIX}.lib
188  debug itkjpeg8${CAMITK_DEBUG_POSTFIX}.lib
189  debug ITKSpatialObject${CAMITK_DEBUG_POSTFIX}.lib
190  debug itkvnl_inst${CAMITK_DEBUG_POSTFIX}.lib
191  debug itkvnl_algo${CAMITK_DEBUG_POSTFIX}.lib
192  debug itkv3p_netlib${CAMITK_DEBUG_POSTFIX}.lib
193  debug itkvnl${CAMITK_DEBUG_POSTFIX}.lib
194  debug itkvcl${CAMITK_DEBUG_POSTFIX}.lib
195  debug itkv3p_lsqr${CAMITK_DEBUG_POSTFIX}.lib
196  debug ITKMetaIO${CAMITK_DEBUG_POSTFIX}.lib
197  debug itksys${CAMITK_DEBUG_POSTFIX}.lib
198  debug ITKDICOMParser${CAMITK_DEBUG_POSTFIX}.lib
199  debug ITKEXPAT${CAMITK_DEBUG_POSTFIX}.lib
200  debug ITKniftiio${CAMITK_DEBUG_POSTFIX}.lib
201  debug ITKznz${CAMITK_DEBUG_POSTFIX}.lib
202  debug itkzlib${CAMITK_DEBUG_POSTFIX}.lib
203  debug snmpapi.lib
204  debug rpcrt4.lib
205  debug ws2_32.lib
206  debug comctl32.lib
207  debug wsock32.lib
208  debug opengl32.lib
209  )
210  else()
211  message(FATAL_ERROR "ITK ( >= 3.20.1) is required by ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
212  endif()
213  elseif(MSVC11 OR MSVC12) # Visual Studion 2012 /2013 => use ITK 4.3.2 at least
214  find_package(ITK 4.3.2 REQUIRED)
215  if(ITK_FOUND)
216  message(STATUS "${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} : Found suitable version of ITK : ${ITK_VERSION} (required is 4.3.2)")
217  include(${ITK_USE_FILE})
218  link_directories(${ITK_DIR}/../..)
219  set(ITK_LIBRARIES
220  # Debug libraries
221  debug ITKAlgorithms-4.3${CAMITK_DEBUG_POSTFIX}.lib
222  debug ITKCommon-4.3${CAMITK_DEBUG_POSTFIX}.lib
223  debug ITKNrrdIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
224  debug itkgdcmCommon-4.3${CAMITK_DEBUG_POSTFIX}.lib
225  debug itkjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
226  debug itkopenjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
227  debug itkpng-4.3${CAMITK_DEBUG_POSTFIX}.lib
228  debug itktiff-4.3${CAMITK_DEBUG_POSTFIX}.lib
229  debug ITKSpatialObjects-4.3${CAMITK_DEBUG_POSTFIX}.lib
230  debug itkvnl_algo-4.3${CAMITK_DEBUG_POSTFIX}.lib
231  debug itkv3p_netlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
232  debug itkvnl-4.3${CAMITK_DEBUG_POSTFIX}.lib
233  debug itkvcl-4.3${CAMITK_DEBUG_POSTFIX}.lib
234  debug itkv3p_lsqr-4.3${CAMITK_DEBUG_POSTFIX}.lib
235  debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
236  debug itksys-4.3${CAMITK_DEBUG_POSTFIX}.lib
237  debug ITKDICOMParser-4.3${CAMITK_DEBUG_POSTFIX}.lib
238  debug ITKEXPAT-4.3${CAMITK_DEBUG_POSTFIX}.lib
239  debug ITKniftiio-4.3${CAMITK_DEBUG_POSTFIX}.lib
240  debug ITKznz-4.3${CAMITK_DEBUG_POSTFIX}.lib
241  debug itkzlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
242  debug snmpapi.lib
243  debug rpcrt4.lib
244  debug ws2_32.lib
245  debug comctl32.lib
246  debug wsock32.lib
247  debug opengl32.lib
248  debug ITKIOGIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
249  debug ITKIONIFTI-4.3${CAMITK_DEBUG_POSTFIX}.lib
250  debug ITKIONRRD-4.3${CAMITK_DEBUG_POSTFIX}.lib
251  debug ITKIOPNG-4.3${CAMITK_DEBUG_POSTFIX}.lib
252  debug itkgdcmDICT-4.3${CAMITK_DEBUG_POSTFIX}.lib
253  debug itkgdcmDSED-4.3${CAMITK_DEBUG_POSTFIX}.lib
254  debug itkgdcmIOD-4.3${CAMITK_DEBUG_POSTFIX}.lib
255  debug itkgdcmjpeg8-4.3${CAMITK_DEBUG_POSTFIX}.lib
256  debug itkgdcmjpeg12-4.3${CAMITK_DEBUG_POSTFIX}.lib
257  debug itkgdcmjpeg16-4.3${CAMITK_DEBUG_POSTFIX}.lib
258  debug itkgdcmMSFF-4.3${CAMITK_DEBUG_POSTFIX}.lib
259  debug ITKgiftiio-4.3${CAMITK_DEBUG_POSTFIX}.lib
260  debug itkhdf5_cpp-4.3${CAMITK_DEBUG_POSTFIX}.lib
261  debug itkhdf5-4.3${CAMITK_DEBUG_POSTFIX}.lib
262  debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
263  debug ITKIOBioRad-4.3${CAMITK_DEBUG_POSTFIX}.lib
264  debug ITKIOStimulate-4.3${CAMITK_DEBUG_POSTFIX}.lib
265  debug ITKIOTIFF-4.3${CAMITK_DEBUG_POSTFIX}.lib
266  debug ITKIOVTK-4.3${CAMITK_DEBUG_POSTFIX}.lib
267  debug ITKIOPNG-4.3${CAMITK_DEBUG_POSTFIX}.lib
268  debug ITKBiasCorrection-4.3${CAMITK_DEBUG_POSTFIX}.lib
269  debug ITKBioCell-4.3${CAMITK_DEBUG_POSTFIX}.lib
270  debug ITKFEM-4.3${CAMITK_DEBUG_POSTFIX}.lib
271  debug ITKIOBMP-4.3${CAMITK_DEBUG_POSTFIX}.lib
272  debug ITKIOCSV-4.3${CAMITK_DEBUG_POSTFIX}.lib
273  debug ITKIOGDCM-4.3${CAMITK_DEBUG_POSTFIX}.lib
274  debug ITKIOGE-4.3${CAMITK_DEBUG_POSTFIX}.lib
275  debug ITKIOGIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
276  debug ITKIOHDF5-4.3${CAMITK_DEBUG_POSTFIX}.lib
277  debug ITKIOImageBase-4.3${CAMITK_DEBUG_POSTFIX}.lib
278  debug ITKIOIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
279  debug ITKIOJPEG-4.3${CAMITK_DEBUG_POSTFIX}.lib
280  debug ITKIOLSM-4.3${CAMITK_DEBUG_POSTFIX}.lib
281  debug ITKIOMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
282  debug ITKIOMeta-4.3${CAMITK_DEBUG_POSTFIX}.lib
283  debug ITKIOSiemens-4.3${CAMITK_DEBUG_POSTFIX}.lib
284  debug ITKIOSpatialObjects-4.3${CAMITK_DEBUG_POSTFIX}.lib
285  debug ITKIOTransformBase-4.3${CAMITK_DEBUG_POSTFIX}.lib
286  debug ITKIOTransformHDF5-4.3${CAMITK_DEBUG_POSTFIX}.lib
287  debug ITKIOTransformInsightLegacy-4.3${CAMITK_DEBUG_POSTFIX}.lib
288  debug ITKIOTransformMatlab-4.3${CAMITK_DEBUG_POSTFIX}.lib
289  debug ITKIOXML-4.3${CAMITK_DEBUG_POSTFIX}.lib
290  debug ITKKLMRegionGrowing-4.3${CAMITK_DEBUG_POSTFIX}.lib
291  debug ITKLabelMap-4.3${CAMITK_DEBUG_POSTFIX}.lib
292  debug ITKMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
293  debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
294  debug itkNetlibSlatec-4.3${CAMITK_DEBUG_POSTFIX}.lib
295  debug itkopenjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
296  debug ITKOptimizers-4.3${CAMITK_DEBUG_POSTFIX}.lib
297  debug ITKOptimizersv4-4.3${CAMITK_DEBUG_POSTFIX}.lib
298  debug ITKPath-4.3${CAMITK_DEBUG_POSTFIX}.lib
299  debug itkpng-4.3${CAMITK_DEBUG_POSTFIX}.lib
300  debug ITKPolynomials-4.3${CAMITK_DEBUG_POSTFIX}.lib
301  debug ITKQuadEdgeMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
302  debug ITKReview-4.3${CAMITK_DEBUG_POSTFIX}.lib
303  debug ITKStatistics-4.3${CAMITK_DEBUG_POSTFIX}.lib
304  debug itkv3p_lsqr-4.3${CAMITK_DEBUG_POSTFIX}.lib
305  debug itkv3p_netlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
306  debug itkvcl-4.3${CAMITK_DEBUG_POSTFIX}.lib
307  debug ITKVideoCore-4.3${CAMITK_DEBUG_POSTFIX}.lib
308  debug ITKVideoIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
309  debug ITKVTK-4.3${CAMITK_DEBUG_POSTFIX}.lib
310  debug ITKVNLInstantiation-4.3${CAMITK_DEBUG_POSTFIX}.lib
311  debug ITKWatersheds-4.3${CAMITK_DEBUG_POSTFIX}.lib
312  # Release librariesdebug
313  optimized ITKAlgorithms-4.3.lib
314  optimized ITKCommon-4.3.lib
315  optimized ITKNrrdIO-4.3.lib
316  optimized itkgdcmCommon-4.3.lib
317  optimized itkjpeg-4.3.lib
318  optimized itkopenjpeg-4.3.lib
319  optimized itkpng-4.3.lib
320  optimized itktiff-4.3.lib
321  optimized ITKSpatialObjects-4.3.lib
322  optimized itkvnl_algo-4.3.lib
323  optimized itkv3p_netlib-4.3.lib
324  optimized itkvnl-4.3.lib
325  optimized itkvcl-4.3.lib
326  optimized itkv3p_lsqr-4.3.lib
327  optimized ITKMetaIO-4.3.lib
328  optimized itksys-4.3.lib
329  optimized ITKDICOMParser-4.3.lib
330  optimized ITKEXPAT-4.3.lib
331  optimized ITKniftiio-4.3.lib
332  optimized ITKznz-4.3.lib
333  optimized itkzlib-4.3.lib
334  optimized snmpapi.lib
335  optimized rpcrt4.lib
336  optimized ws2_32.lib
337  optimized comctl32.lib
338  optimized wsock32.lib
339  optimized opengl32.lib
340  optimized ITKIOGIPL-4.3.lib
341  optimized ITKIONIFTI-4.3.lib
342  optimized ITKIONRRD-4.3.lib
343  optimized ITKIOPNG-4.3.lib
344  optimized itkgdcmDICT-4.3.lib
345  optimized itkgdcmDSED-4.3.lib
346  optimized itkgdcmIOD-4.3.lib
347  optimized itkgdcmjpeg8-4.3.lib
348  optimized itkgdcmjpeg12-4.3.lib
349  optimized itkgdcmjpeg16-4.3.lib
350  optimized itkgdcmMSFF-4.3.lib
351  optimized ITKgiftiio-4.3.lib
352  optimized itkhdf5_cpp-4.3.lib
353  optimized itkhdf5-4.3.lib
354  optimized ITKMetaIO-4.3.lib
355  optimized ITKIOBioRad-4.3.lib
356  optimized ITKIOStimulate-4.3.lib
357  optimized ITKIOTIFF-4.3.lib
358  optimized ITKIOVTK-4.3.lib
359  optimized ITKIOPNG-4.3.lib
360  optimized ITKBiasCorrection-4.3.lib
361  optimized ITKBioCell-4.3.lib
362  optimized ITKFEM-4.3.lib
363  optimized ITKIOBMP-4.3.lib
364  optimized ITKIOCSV-4.3.lib
365  optimized ITKIOGDCM-4.3.lib
366  optimized ITKIOGE-4.3.lib
367  optimized ITKIOGIPL-4.3.lib
368  optimized ITKIOHDF5-4.3.lib
369  optimized ITKIOImageBase-4.3.lib
370  optimized ITKIOIPL-4.3.lib
371  optimized ITKIOJPEG-4.3.lib
372  optimized ITKIOLSM-4.3.lib
373  optimized ITKIOMesh-4.3.lib
374  optimized ITKIOMeta-4.3.lib
375  optimized ITKIOSiemens-4.3.lib
376  optimized ITKIOSpatialObjects-4.3.lib
377  optimized ITKIOTransformBase-4.3.lib
378  optimized ITKIOTransformHDF5-4.3.lib
379  optimized ITKIOTransformInsightLegacy-4.3.lib
380  optimized ITKIOTransformMatlab-4.3.lib
381  optimized ITKIOXML-4.3.lib
382  optimized ITKKLMRegionGrowing-4.3.lib
383  optimized ITKLabelMap-4.3.lib
384  optimized ITKMesh-4.3.lib
385  optimized ITKMetaIO-4.3.lib
386  optimized itkNetlibSlatec-4.3.lib
387  optimized itkopenjpeg-4.3.lib
388  optimized ITKOptimizers-4.3.lib
389  optimized ITKOptimizersv4-4.3.lib
390  optimized ITKPath-4.3.lib
391  optimized itkpng-4.3.lib
392  optimized ITKPolynomials-4.3.lib
393  optimized ITKQuadEdgeMesh-4.3.lib
394  optimized ITKReview-4.3.lib
395  optimized ITKStatistics-4.3.lib
396  optimized itkv3p_lsqr-4.3.lib
397  optimized itkv3p_netlib-4.3.lib
398  optimized itkvcl-4.3.lib
399  optimized ITKVideoCore-4.3.lib
400  optimized ITKVideoIO-4.3.lib
401  optimized ITKVTK-4.3.lib
402  optimized ITKVNLInstantiation-4.3.lib
403  optimized ITKWatersheds-4.3.lib
404  )
405  else()
406  message(FATAL_ERROR "ITK ( >= 4.3.2) is required by ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
407  endif()
408  else() # New version of VS compiler not supported yet
409  message(FATAL_ERROR "ITK : Unsupported version of Visual Studio compiler. Please update CamiTK, downgrade your VS version to 2008/2010/2012 or contact CamiTK team support.")
410  endif()
411  else()
412  if (MINGW) # MinGW compiler
413  find_package(ITK 4.3.2 REQUIRED)
414  if(ITK_FOUND)
415  message(STATUS "${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} : Found suitable version of ITK : ${ITK_VERSION} (required is 4.3.2)")
416  include(${ITK_USE_FILE})
417  link_directories(${ITK_DIR}/../..)
418  set(ITK_LIBRARIES
419  ITKAlgorithms-4.3
420  ITKCommon-4.3
421  ITKNrrdIO-4.3
422  itkgdcmCommon-4.3
423  itkjpeg-4.3
424  itkopenjpeg-4.3
425  itkpng-4.3
426  itktiff-4.3
427  ITKSpatialObjects-4.3
428  itkvnl_algo-4.3
429  itkv3p_netlib-4.3
430  itkvnl-4.3
431  itkvcl-4.3
432  itkv3p_lsqr-4.3
433  ITKMetaIO-4.3
434  itksys-4.3
435  ITKDICOMParser-4.3
436  ITKEXPAT-4.3
437  ITKniftiio-4.3
438  ITKznz-4.3
439  itkzlib-4.3
440  snmpapi
441  rpcrt4
442  ws2_32
443  comctl32
444  wsock32
445  opengl32
446  ITKIOGIPL-4.3
447  ITKIONIFTI-4.3
448  ITKIONRRD-4.3
449  ITKIOPNG-4.3
450  itkgdcmDICT-4.3
451  itkgdcmDSED-4.3
452  itkgdcmIOD-4.3
453  itkgdcmjpeg8-4.3
454  itkgdcmjpeg12-4.3
455  itkgdcmjpeg16-4.3
456  itkgdcmMSFF-4.3
457  ITKgiftiio-4.3
458  itkhdf5_cpp-4.3
459  itkhdf5-4.3
460  ITKMetaIO-4.3
461  ITKIOBioRad-4.3
462  ITKIOStimulate-4.3
463  ITKIOTIFF-4.3
464  ITKIOVTK-4.3
465  ITKIOPNG-4.3
466  ITKBiasCorrection-4.3
467  ITKBioCell-4.3
468  ITKFEM-4.3
469  ITKIOBMP-4.3
470  ITKIOCSV-4.3
471  ITKIOGDCM-4.3
472  ITKIOGE-4.3
473  ITKIOGIPL-4.3
474  ITKIOHDF5-4.3
475  ITKIOImageBase-4.3
476  ITKIOIPL-4.3
477  ITKIOJPEG-4.3
478  ITKIOLSM-4.3
479  ITKIOMesh-4.3
480  ITKIOMeta-4.3
481  ITKIOSiemens-4.3
482  ITKIOSpatialObjects-4.3
483  ITKIOTransformBase-4.3
484  ITKIOTransformHDF5-4.3
485  ITKIOTransformInsightLegacy-4.3
486  ITKIOTransformMatlab-4.3
487  ITKIOXML-4.3
488  ITKKLMRegionGrowing-4.3
489  ITKLabelMap-4.3
490  ITKMesh-4.3
491  ITKMetaIO-4.3
492  itkNetlibSlatec-4.3
493  itkopenjpeg-4.3
494  ITKOptimizers-4.3
495  ITKOptimizersv4-4.3
496  ITKPath-4.3
497  itkpng-4.3
498  ITKPolynomials-4.3
499  ITKQuadEdgeMesh-4.3
500  ITKReview-4.3
501  ITKStatistics-4.3
502  itkv3p_lsqr-4.3
503  itkv3p_netlib-4.3
504  itkvcl-4.3
505  ITKVideoCore-4.3
506  ITKVideoIO-4.3
507  ITKVTK-4.3
508  ITKVNLInstantiation-4.3
509  ITKWatersheds-4.3
510  )
511  else()
512  message(FATAL_ERROR "ITK ( >= 4.3.2) is required by ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
513  endif()
514  else() # Linux / MacOS compilers
515  find_package(ITK REQUIRED)
516  if(ITK_FOUND)
517  message(STATUS "${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} : Found suitable version of ITK : ${ITK_VERSION} (required is 3.20.1)")
518  include(${ITK_USE_FILE})
519  set(ITK_LIBRARIES ITKBasicFilters ITKCommon ITKIO)
520  else()
521  message(FATAL_ERROR "ITK ( >= 3.20.1) is required by ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
522  endif()
523  endif()
524  endif()
525  endif()
526 
527  # XERCES-C
528  set(XERCESC_LIBRARIES)
529  if(${APPLICATION_NAME_CMAKE}_NEEDS_XERCESC)
530  # XercesC is required
531  find_package(XercesC REQUIRED)
532  if (XERCESC_FOUND)
533  include_directories(${XERCESC_INCLUDE_DIR})
534  set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
535  else()
536  # most probably win32 or crosscompiling
537  message(FATAL_ERROR "${APPLICATION_NAME}: xerces-c required. Please provide Xerces-C path.")
538  endif()
539  endif()
540 
541  # XSD
542  if(${APPLICATION_NAME_CMAKE}_NEEDS_XSD)
543  # XercesC is required
544  find_package(XercesC REQUIRED)
545  if (XERCESC_FOUND)
546  include_directories(${XERCESC_INCLUDE_DIR})
547  set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
548  find_package(XSD REQUIRED)
549  include_directories(${XSD_INCLUDE_DIR})
550  else()
551  # most probably win32 or crosscompiling
552  message(FATAL_ERROR "${APPLICATION_NAME}: xerces-c required because of XSD cxx, please set XERCESC_INCLUDE_DIR")
553  endif()
554  endif()
555 
556  # PYTHON
557  set(PYTHON_LIBRARIES "")
558  if(${APPLICATION_NAME_CMAKE}_NEEDS_PYTHON)
559  message(STATUS "Python needed by ${APPLICATION_NAME}")
560  find_package(PythonLibs 2.7 REQUIRED)
561  if(PYTHONLIBS_FOUND)
562  message(STATUS "Python found (needed by ${APPLICATION_NAME})")
563  include_directories(${PYTHON_INCLUDE_DIRS})
564  # PYTHON_LIRARIES is automatically and correctly set by find_package
565  else()
566  message(FATAL_ERROR "Python (2.7 or above) is required by ${APPLICATION_NAME} : please add your python installation dir to your PATH environment variable")
567  endif()
568  endif()
569 
570  # QT MODULES
571  set(QT_MODULES_LIBRARIES)
572  if(${APPLICATION_NAME_CMAKE}_NEEDS_QT_MODULES)
573  find_package(Qt4 "4.7" COMPONENTS QtCore QtGui QtXml QtXmlPatterns QtWebkit QtOpenGL QtScript QtSQL QtNetwork REQUIRED)
574  if(NOT QT4_FOUND)
575  message(SEND_ERROR "${APPLICATION_NAME} : Failed to find Qt 4.7 or greater. This is needed by CamiTK.")
576  endif()
577 
578  # CMake will add the Qt modules specific include directories
579  include(${QT_USE_FILE})
580  # Qt additional modules are required for linking
581  set(QT_MODULES_LIBRARIES ${QT_LIBRARIES})
582  endif()
583 
584  # CEP LIBRARIES
585  if(${APPLICATION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES)
586  foreach(CEP_LIBRARY_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES})
587  message(STATUS "${CEP_LIBRARY_NEEDED} required by application ${APPLICATION_NAME}")
588  string(TOUPPER ${CEP_LIBRARY_NEEDED} ${CEP_LIBRARY_NEEDED}_INTERNAL)
589  set(LIBRARY_${${CEP_LIBRARY_NEEDED}_INTERNAL} ON CACHE BOOL "Required by application ${APPLICATION_NAME}" FORCE )
590 
591  # Add the libraries to link against according to the dependencies
592  if (MSVC)
593  set(CEP_LIBRARIES ${CEP_LIBRARIES} debug ${CEP_LIBRARY_NEEDED}${CAMITK_DEBUG_POSTFIX}
594  optimized ${CEP_LIBRARY_NEEDED}
595  )
596  else()
597  if(PACKAGING_NSIS)
598  set(CEP_LIBRARIES ${CEP_LIBRARIES} library_${CEP_LIBRARY_NEEDED})
599  else()
600  set(CEP_LIBRARIES ${CEP_LIBRARIES} library-${CEP_LIBRARY_NEEDED})
601  endif()
602  endif()
603  include_directories(${CAMITK_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
604  include_directories(${CAMITK_USER_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
605  include_directories(${CAMITK_BUILD_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
606  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/${CEP_LIBRARY_NEEDED})
607  endforeach()
608  endif()
609 
610  # EXTERNAL LIBRARIES
611  set(EXTERNAL_LIBRARIES)
612  if(${APPLICATION_NAME_CMAKE}_EXTERNAL_LIBRARIES)
613  foreach(EXTERNAL_LIBRARY ${${APPLICATION_NAME_CMAKE}_EXTERNAL_LIBRARIES})
614  if (MSVC) # TODO We have to decide how to handle debug version of external libraries
615  set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES}
616  debug ${EXTERNAL_LIBRARY}${CAMITK_DEBUG_POSTFIX}
617  optimized ${EXTERNAL_LIBRARY}
618  )
619  else()
620  set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} ${EXTERNAL_LIBRARY})
621  endif()
622  endforeach()
623  endif()
624 
625  # BACKWARD COMPATIBILITY
626  # NEEDS_TOOLS option
627  # TODO CAMITK_DEPRECATED. This option is marked as deprecated. It is to be removed in CamiTK 4.0
628  # check deprecated (and warn)
629  # TODO CAMITK_DEPRECATED. This option is marked as deprecated. It is to be removed in CamiTK 4.0
630  if(${APPLICATION_NAME_CMAKE}_NEEDS_TOOL)
631  message(WARNING "Warning: ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt: camitk_application macro option NEEDS_TOOL is deprecated, please use NEEDS_CEP_LIBRARIES instead..")
632  set(CEP_LIBRARIES ${CEP_LIBRARIES} ${${APPLICATION_NAME_CMAKE}_NEEDS_TOOL})
633  endif()
634 
635 
636 
637  #########################################################################
638  # #
639  # CAMITK ACTION / COMPONENT DEPENDENCIES #
640  # #
641  # * Look for action / component dependencies #
642  # * Specific actions / components are specified as option with the #
643  # NEEDS_ACTION/COMPONENT_EXTENSION syntax #
644  # #
645  #########################################################################
646 
647  # COMPONENT EXTENSION DEPENDENCIES
648  set(COMPONENT_EXTENSION_LIBRARIES)
649  if(${APPLICATION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION)
650  foreach(COMPONENT_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION})
651  string(TOUPPER ${COMPONENT_NEEDED} ${COMPONENT_NEEDED}_INTERNAL)
652  set(COMPONENT_${${COMPONENT_NEEDED}_INTERNAL} ON CACHE BOOL "Required by application ${APPLICATION_NAME}" FORCE )
653  if (MSVC)
654  set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES}
655  debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/components/${COMPONENT_NEEDED}${CAMITK_DEBUG_POSTFIX}
656  optimized ${COMPONENT_NEEDED}
657  )
658  else()
659  set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES} ${COMPONENT_NEEDED})
660  endif()
661  include_directories(${CAMITK_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
662  include_directories(${CAMITK_USER_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
663  include_directories(${CAMITK_BUILD_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
664  endforeach()
665  endif()
666 
667  # ACTION EXTENSION DEPENDENCIES
668  set(ACTION_EXTENSION_LIBRARIES)
669  if(${APPLICATION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION)
670  foreach(ACTION_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION})
671  string(TOUPPER ${ACTION_NEEDED} ${ACTION_NEEDED}_INTERNAL)
672  set(ACTION_${${ACTION_NEEDED}_INTERNAL} ON CACHE BOOL "Required by extension ${APPLICATION_NAME}" FORCE )
673  if (MSVC)
674  set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES}
675  debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/actions/${ACTION_NEEDED}${CAMITK_DEBUG_POSTFIX}
676  optimized ${ACTION_NEEDED}
677  )
678  else()
679  set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES} ${ACTION_NEEDED})
680  endif()
681  include_directories(${CAMITK_INCLUDE_DIR}/actions/${ACTION_NEEDED})
682  include_directories(${CAMITK_USER_INCLUDE_DIR}/actions/${ACTION_NEEDED})
683  include_directories(${CAMITK_BUILD_INCLUDE_DIR}/actions/${ACTION_NEEDED})
684  endforeach()
685  endif()
686 
687 
688 
689  #########################################################################
690  # #
691  # LINK DIRECTORIES #
692  # #
693  # * Link directories are used to indicate the compiler where #
694  # to look for folder containing libraries to link with. #
695  # #
696  #########################################################################
697  # CAMITK BASIC LIB DIRECTORIES
698  link_directories(${CAMITK_LINK_DIRECTORIES})
699 
700 
701 
702  #########################################################################
703  # #
704  # TARGET COMPILATION DEFINITION #
705  # #
706  # * Additional sources files to consider at compilation (.cpp) #
707  # * CMake project target definition #
708  # #
709  #########################################################################
710  # EXTERNAL SOURCES
711  set(${APPLICATION_NAME}_SOURCES ${${APPLICATION_NAME}_SOURCES} ${${APPLICATION_NAME_CMAKE}_ADDITIONAL_SOURCES})
712 
713  # CMAKE TARGET DEFINITION
714  add_executable(${APPLICATION_TARGET_NAME} ${${APPLICATION_NAME}_SOURCES})
715 
716 
717 
718  #########################################################################
719  # #
720  # COMPILATION FLAG #
721  # #
722  # * Flags are options to give to the compiler #
723  # * Add user input flags #
724  # * Add platform specific flags #
725  # #
726  #########################################################################
727 
728  # USER INPUT COMPILER FLAG
729  if(${APPLICATION_NAME_CMAKE}_DEFINES)
730  foreach (FLAG ${${APPLICATION_NAME_CMAKE}_DEFINES})
731  add_definitions(-D${FLAG})
732  endforeach()
733  endif()
734 
735  # USER INPUT CUSTOM COMPILER FLAG
736  if(${APPLICATION_NAME_CMAKE}_CXX_FLAGS)
737  foreach (FLAG ${${APPLICATION_NAME_CMAKE}_CXX_FLAGS})
738  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
739  endforeach()
740  endif()
741 
742 
743 
744  #########################################################################
745  # #
746  # LINKING #
747  # #
748  # * Linking is the last stage of compilation #
749  # * Indicate what libraries to use for linking the target #
750  # #
751  #########################################################################
752  # LINKING LIBRARIES
753  target_link_libraries(${APPLICATION_TARGET_NAME} ${CAMITK_CORE_LIBRARIES} ${CAMITK_LIBRARIES} ${COMPONENT_EXTENSION_LIBRARIES} ${ACTION_EXTENSION_LIBRARIES} ${CEP_LIBRARIES} ${QT_MODULES_LIBRARIES} ${XERCESC_LIBRARY} ${ITK_LIBRARIES} ${PYTHON_LIBRARIES} ${EXTERNAL_LIBRARIES})
754 
755 
756 
757  #########################################################################
758  # #
759  # OUTPUT #
760  # #
761  # * Define the output directory (location and name) #
762  # * Define the output name of the library #
763  # * Add ${CAMITK_DEBUG_POSTFIX} suffix to Debug MSVC built libraries #
764  # #
765  #########################################################################
766 
767  # OUTPUT NAME
768  if (MSVC)
769  set_target_properties(${APPLICATION_TARGET_NAME}
770  PROPERTIES OUTPUT_NAME camitk-${APPLICATION_NAME}
771  DEBUG_POSTFIX ${CAMITK_DEBUG_POSTFIX}
772  )
773  else()
774  set_target_properties(${APPLICATION_TARGET_NAME}
775  PROPERTIES OUTPUT_NAME camitk-${APPLICATION_NAME}
776  )
777  endif()
778 
779  # OUTPUT DIRECTORY LOCATION
780  # always in bin folder
781  set_target_properties(${APPLICATION_TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CAMITK_BUILD_BIN_DIR}
782  RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_BIN_DIR}
783  RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_BIN_DIR}
784  )
785 
786  #########################################################################
787  # #
788  # INSTALLATION #
789  # #
790  # * When installing the project, header files (.h) and test data are #
791  # copied into a installation folder to determine. #
792  # * Indicate in this section, where to install your project and which #
793  # files to copy into that folder (during local/global installation) #
794  # #
795  #########################################################################
796 
797  # FOLDER INSTALLATION
798  # Indicate where to install the application
799  install(TARGETS ${APPLICATION_TARGET_NAME}
800  RUNTIME DESTINATION bin
801  COMPONENT ${APPLICATION_TARGET_NAME}
802  )
803 
804 
805 
806  #########################################################################
807  # #
808  # PROJECT DEPENDENCIES #
809  # #
810  # * Add in this section library dependencies to other camitk projects #
811  # to keep a correct build order. #
812  # #
813  #########################################################################
814 
815  # CAMITKCORE LIBRARY DEPENDENCY
816  add_dependencies(${APPLICATION_TARGET_NAME} ${CAMITK_CORE_TARGET_LIB_NAME})
817 
818  # COMPONENTS DEPENDENCIES
819  if(${APPLICATION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION)
820  foreach(COMPONENT_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION})
821  string(TOUPPER ${COMPONENT_NEEDED} COMPONENT_NEEDED_CMAKE)
822  # if this is not true, then the dependencies is from an external build, do not use add_dependencies
823  if (APPLICATION_${APPLICATION_NAME_CMAKE}_INTERNAL)
824  # TODO add IMPORTED
825  add_dependencies(${APPLICATION_TARGET_NAME} component-${COMPONENT_NEEDED})
826  endif()
827  endforeach()
828  endif()
829 
830  # ACTIONS DEPENDENCIES
831  if(${APPLICATION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION)
832  foreach(ACTION_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION})
833  string(TOUPPER ${ACTION_NEEDED} ACTION_NEEDED_CMAKE)
834  # if this is not true, then the dependencies is from an external build, do not use add_dependencies
835  if (APPLICATION_${APPLICATION_NAME_CMAKE}_INTERNAL)
836  # TODO add IMPORTED
837  add_dependencies(${APPLICATION_TARGET_NAME} action-${ACTION_NEEDED})
838  endif()
839  endforeach()
840  endif()
841 
842  # CEP LIBRARIES DEPENDENCIES
843  if(${APPLICATION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES)
844  foreach(CEP_LIBRARY_NEEDED ${${APPLICATION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES})
845  if(PACKAGING_NSIS)
846  add_dependencies(${APPLICATION_TARGET_NAME} ${CEP_LIBRARY_NEEDED})
847  else()
848  add_dependencies(${APPLICATION_TARGET_NAME} ${CEP_LIBRARY_NEEDED})
849  endif()
850  endforeach()
851  endif()
852 
853 
854 
855  #########################################################################
856  # #
857  # CDASH SUBPROJECT DESCRIPTION #
858  # #
859  # * Update the XML descriton of the subprojects dependenicies #
860  # for CDash. #
861  # #
862  #########################################################################
863  # CDASH XML SUBPROJECTS DESCRIPTION UPDATE
864  camitk_sub_project_add(APPLICATION ${APPLICATION_TARGET_NAME} DEPENDENCIES ${COMPONENT_EXTENSION_LIBRARIES} ${ACTION_EXTENSION_LIBRARIES} ${CAMITK_CORE_LIB_NAME} ${CEP_LIBRARIES})
865 
866 
867 
868  #########################################################################
869  # #
870  # PACKAGING CATEGORIZATION #
871  # #
872  # * On Windows, when building a package (win32 installer), the #
873  # install shield wizard proposes you to select which component #
874  # to install. #
875  # * Each component to install has a short description following its #
876  # name to understand its role. #
877  # * This section deals with the categorization and the description #
878  # of the component in this installer. #
879  # #
880  #########################################################################
881 
882  # WINDOWS INSTALLER CATEGORIZATION
883  if(${APPLICATION_NAME_CMAKE}_CEP_NAME)
884  if (${APPLICATION_NAME_CMAKE}_CEP_NAME MATCHES "SDK")
885  # The default SDK extensions are categorized as "required" and are not "unselectable" by the user at installation time
886  cpack_add_component(${APPLICATION_TARGET_NAME}
887  DISPLAY_NAME ${APPLICATION_TARGET_NAME}
888  DESCRIPTION ${${APPLICATION_NAME_CMAKE}_DESCRIPTION}
889  REQUIRED
890  GROUP SDK
891  )
892 
893  else()
894  # Extension is selectable for installation in the wizard of the installer
895  cpack_add_component(${APPLICATION_TARGET_NAME}
896  DISPLAY_NAME ${APPLICATION_TARGET_NAME}
897  DESCRIPTION ${${APPLICATION_NAME_CMAKE}_DESCRIPTION}
898  GROUP ${${APPLICATION_NAME_CMAKE}_CEP_NAME}
899  )
900  endif()
901  else()
902  # Extension if not categorized for packaging presentation
903  cpack_add_component(${APPLICATION_TARGET_NAME}
904  DISPLAY_NAME ${APPLICATION_TARGET_NAME}
905  DESCRIPTION ${${APPLICATION_NAME_CMAKE}_DESCRIPTION}
906  )
907 
908  endif()
909 
910  # additional unix system files/resources
911  if(UNIX)
912  # Man page installation
913  set(${APPLICATION_NAME_CMAKE}_MAN_PAGE ${CMAKE_CURRENT_SOURCE_DIR}/resources/camitk-${APPLICATION_NAME}.1)
914  if (EXISTS ${${APPLICATION_NAME_CMAKE}_MAN_PAGE})
915  message(STATUS "Found man page for ${APPLICATION_TARGET_NAME}")
916  install(FILES ${${APPLICATION_NAME_CMAKE}_MAN_PAGE}
917  DESTINATION ${CAMITK_APPLICATION_MAN_INSTALL_DIR}
918  )
919  else()
920  # check if .in exists
921  if (EXISTS ${${APPLICATION_NAME_CMAKE}_MAN_PAGE}.in)
922  message(STATUS "Found man page configuration file for ${APPLICATION_TARGET_NAME}")
923  install(CODE "message(STATUS \"Updating ${APPLICATION_NAME} man page (version ${CAMITK_VERSION_MAJOR}.${CAMITK_VERSION_MINOR} as of ${CURRENT_DATE})\")")
924  # set variable in sub-cmake shell
925  install(CODE "set(APPLICATION_NAME ${APPLICATION_NAME})")
926  install(CODE "set(CURRENT_DATE ${CURRENT_DATE})")
927  install(CODE "set(CAMITK_VERSION_MAJOR ${CAMITK_VERSION_MAJOR})")
928  install(CODE "set(CAMITK_VERSION_MINOR ${CAMITK_VERSION_MINOR})")
929  # remove previous version
930  install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/camitk-${APPLICATION_NAME}.1)")
931  # configure current version
932  install(CODE "configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/camitk-${APPLICATION_NAME}.1.in ${CMAKE_CURRENT_BINARY_DIR}/camitk-${APPLICATION_NAME}.1 @ONLY)")
933  # install file
934  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/camitk-${APPLICATION_NAME}.1 DESTINATION ${CAMITK_APPLICATION_MAN_INSTALL_DIR})
935  endif()
936  endif()
937 
938  # Desktop file
939  set(${APPLICATION_NAME_CMAKE}_DESKTOP ${CMAKE_CURRENT_SOURCE_DIR}/resources/camitk-${APPLICATION_NAME}.desktop)
940  if (EXISTS ${${APPLICATION_NAME_CMAKE}_DESKTOP})
941  message(STATUS "Found desktop file for ${APPLICATION_TARGET_NAME}")
942  install(FILES ${${APPLICATION_NAME_CMAKE}_DESKTOP} DESTINATION ${CAMITK_APPLICATION_DESKTOP_INSTALL_DIR})
943  endif()
944 
945  # application pixmap
946  set(${APPLICATION_NAME_CMAKE}_PIXMAP ${CMAKE_CURRENT_SOURCE_DIR}/resources/camitk-${APPLICATION_NAME}.xpm)
947  if (EXISTS ${${APPLICATION_NAME_CMAKE}_PIXMAP})
948  message(STATUS "Found pixmap for ${APPLICATION_TARGET_NAME}")
949  install(FILES ${${APPLICATION_NAME_CMAKE}_PIXMAP} DESTINATION ${CAMITK_APPLICATION_PIXMAP_INSTALL_DIR})
950  endif()
951 
952  endif()
953 
954  endif() #APPLICATION_${APPLICATION_NAME_CMAKE}
955 
956 end(){)
bin camitk config camitkDir n mismatch required version
Definition: FindCamiTK.cmake:187
macro(camitk_test_build Name Plateform SvnSubDir BuildOptions) set(CTEST_PROJECT_NAME $
Definition: CamiTKTestBuildMacros.cmake:12
OpenCVConfig cmake include("${OpenCV_DIR}/OpenCVConfig.cmake") set(CVLIB_SUFFIX"$
Definition: FindOpenCV.cmake:71
n b or specify the CMake cache variable(e.g.modify the value directly in the cmake GUI\n or run cmake from the command line with-DCAMITK_DIR:PATH=...)\n c) or specify a CAMITK_DIR environment variable(system variable)\n d) or remove the version requirement in the CMakeLists.txt(e.g.use a simple\n\"find_package(CamiTK REQUIRED)\" without specifying the version)") else() set(CAMITK_VERSION_MESSAGE" (found suitable version \"$
Definition: FindCamiTK.cmake:187
config endif() if(EXISTS"$
Definition: FindCamiTK.cmake:76
get_directory_name()
macro get_directory_name set the variable VariableName to the name of the last directory of FullPathD...
Definition: GetDirectoryName.h:14
set(CAMITK_TEST_PLATEFORM ${Plateform}) set(CAMITK_SVN_SUBDIR $
Definition: CamiTKTestBuildMacros.cmake:15
CamiTK CamiTKDir txt file(STRINGS"${FIND_CAMITK_USER_BASE_DIR}/CamiTK/CamiTKDir.txt"FIND_CAMITK_USER_DIR_LAST_INSTALL) endif() find_program(CAMITK_CONFIG_EXECUTABLE NAMES camitk-config-debug camitk-config PATH_SUFFIXES"bin"PATHS"$
Definition: FindCamiTK.cmake:80
gather_headers_and_sources()
macro gather_headers_and_sources find all headers, sources, including the qt ui, moc and resources an...
Definition: GatherHeadersAndSources.h:15
if(NOT DEFINED CTEST_SOURCE_DIRECTORY) message(FATAL_ERROR"Please provide the source directory of the continuous test with the CTEST_SOURCE_DIRECTORY argument") endif() if(NOT DEFINED CTEST_BINARY_DIRECTORY) message(FATAL_ERROR"Please provide the build directory of the continuous test with the CTEST_BINARY_DIRECTORY argument") endif() if(CAMITK_CONTINUOUS_INTEGRATION) string(REGEX REPLACE"^(.*)-.*-.*""\\1"COMPILER"$
Definition: continuous.cmake:21
is installed and camitk config is in a directory included n in the environment command path($PATH or%PATH%) before the install dir of version $
Definition: FindCamiTK.cmake:187
message(STATUS"Looking for CamiTK ${CamiTK_FIND_VERSION}") set(CAMITK_FOUND FALSE) set(CAMITK_USE_FILE"CamiTKConfig.cmake") set(CAMITK_DIR_DESCRIPTION"directory containing a build tree or install tree of CamiTK.\n It must have the camitk-config binary in its 'bin' subdirectory.") if(WIN32) set(FIND_CAMITK_USER_BASE_DIR $ENV
Definition: FindCamiTK.cmake:54
EXTENSION_NAME parse_arguments(${EXTENSION_NAME_CMAKE}#prefix"NEEDS_TOOL;NEEDS_CEP_LIBRARIES;NEEDS_COMPONENT_EXTENSION;NEEDS_ACTION_EXTENSION;INCLUDE_DIRECTORIES;EXTERNAL_LIBRARIES;HEADERS_TO_INSTALL;DEFINES;CXX_FLAGS;EXTERNAL_SOURCES;TARGET_NAME;CEP_NAME;DESCRIPTION;TEST_APPLICATION"#possible lists"NEEDS_QT_MODULES;ACTION_EXTENSION;COMPONENT_EXTENSION;DISABLED;NEEDS_XERCESC;NEEDS_ITK;NEEDS_LIBXML2;NEEDS_XSD;NEEDS_QTXML;NEEDS_OPENCV;NEEDS_IGSTK;INSTALL_ALL_HEADERS;NEEDS_GDCM;"#possible options ${ARGN}) if($
Definition: CamiTKExtension.cmake:82
camitk_application()
macro camitk_application simplify writing a CMakeLists.txt for CamiTK application extension ...
Definition: CamiTKApplication.h:55
you can(in order of preference)
Definition: FindCamiTK.cmake:139
CPACK_PACKAGE_ARCHITECTURE execute_process(COMMAND lsb_release-is OUTPUT_VARIABLE LSB_ID) execute_process(COMMAND lsb_release-rs OUTPUT_VARIABLE LSB_RELEASE) string(STRIP"$
Definition: CamiTKOpenSourcePackaging.cmake:134