1 # possible values : ACTION_EXTENSION or COMPONENT_EXTENSION.
79 #########################################################################
83 # * Use a macro to create the CMAKE variables according to the #
84 # provided options as input. #
86 #########################################################################
91 "NEEDS_TOOLNEEDS_CEP_LIBRARIESNEEDS_COMPONENT_EXTENSIONNEEDS_ACTION_EXTENSIONINCLUDE_DIRECTORIESEXTERNAL_LIBRARIESHEADERS_TO_INSTALLDEFINESCXX_FLAGSEXTERNAL_SOURCESTARGET_NAMECEP_NAMEDESCRIPTIONTEST_APPLICATIONEXTRA_TRANSLATE_LANGUAGETEST_FILES" # possible lists
92 "NEEDS_QT_MODULESACTION_EXTENSIONCOMPONENT_EXTENSIONDISABLEDNEEDS_XERCESCNEEDS_ITKNEEDS_LIBXML2NEEDS_XSDNEEDS_QTXMLNEEDS_OPENCVNEEDS_IGSTKINSTALL_ALL_HEADERSNEEDS_GDCMDISABLE_TESTLEVEL1DISABLE_TESTLEVEL2DISABLE_TESTLEVEL3" # possible options
98 #########################################################################
100 # CREATE CMAKE VARIABLES #
102 # * Create required and useful
CMake variables
for the macro #
104 #########################################################################
106 # TYPE EXTENSION : ACTION or COMPONENT
107 if (${EXTENSION_NAME_CMAKE}_ACTION_EXTENSION)
108 set(TYPE_EXTENSION
"action")
109 string(TOUPPER ${TYPE_EXTENSION} TYPE_EXTENSION_CMAKE)
110 elseif(${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION)
111 set(TYPE_EXTENSION
"component")
112 string(TOUPPER ${TYPE_EXTENSION} TYPE_EXTENSION_CMAKE)
115 # CMAKE CACHE VARIABLE
116 # if it is the first cmake run, create the extension variable with a correct initial value
117 if(NOT ${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_INTERNAL)
118 # add option to enable/disable
this extension and
set it to
true by
default
119 # Building the extension can be disabled by giving the argument DISABLED to the macro
120 # or by passing the flag -D${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_DISABLED:BOOL=TRUE
121 if(${EXTENSION_NAME_CMAKE}_DISABLED)
122 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED FALSE)
124 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED TRUE)
126 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE} ${${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED} CACHE BOOL
"Build extension ${EXTENSION_NAME}")
127 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_INTERNAL TRUE CACHE INTERNAL
"Is variable ${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME} already created?")
130 # if this extension is enabled, do everything needed
131 # otherwise... do nothing
132 if (${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE})
135 # The target
name is composed of the following: [action / component]-
name
136 # * action / component is the
type of extension as prefix
137 # *
name is deduced from the input folder containing the calling CMakeLists.txt file of the extension.
138 if (${EXTENSION_NAME_CMAKE}_TARGET_NAME)
139 set(${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME ${${EXTENSION_NAME_CMAKE}_TARGET_NAME})
141 set(${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME ${EXTENSION_NAME})
143 # replace "-" by "_" if the extension is being packaged with NSIS, the program to create a Windows installer.
145 # NSIS requires that cpack component names do not feature space or "-" characters
146 set(${TYPE_EXTENSION_CMAKE}_TARGET_NAME ${TYPE_EXTENSION}_${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME})
148 set(${TYPE_EXTENSION_CMAKE}_TARGET_NAME ${TYPE_EXTENSION}-${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME})
151 message(STATUS
"Building extension ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
155 #########################################################################
157 # INCLUDE DIRECTORIES #
159 # * Include basic directories where to look header files #
160 # * Include also additional user provided directories #
161 # * These directories are used for compilation step #
163 #########################################################################
166 include_directories(${CAMITK_INCLUDE_DIRECTORIES})
167 include_directories(${CMAKE_CURRENT_BINARY_DIR})
168 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
170 # USER INPUT DIRECTORIES
171 include_directories(${${EXTENSION_NAME_CMAKE}_INCLUDE_DIRECTORIES})
175 #########################################################################
177 # GATHER RESSOURCES #
179 # * Get all the headers (.h) and source files (.cpp) of the project #
180 # * Create the needed Qt files (using moc and uic) #
182 #########################################################################
184 # get all headers, sources and do what is needed for Qt
185 # one need to do this just before the add_library so that all defines, include directories and link directories
186 # are set properly (gather_headers_and_sources include the call to Qt moc and uic)
191 #########################################################################
193 # ADDITIONAL KNOWN EXTERNAL LIBRARY DEPENDENCIES #
195 # * Look
for specific library needed #
196 # * Specific libraries are specified as option with the #
197 # NEEDS_LIBRARY syntax (see macro syntax
for more options)
#
198 # * Backward compatibility : Warn user if using old NEEDS_TOOL syntax #
200 #########################################################################
203 set(ITK_LIBRARIES
"")
204 if(${EXTENSION_NAME_CMAKE}_NEEDS_ITK)
205 find_package(ITK REQUIRED)
208 set(ITK_VERSION ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}) #ITK_VERSION is not always
set
209 message(STATUS
"${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}: Found ITK version ${ITK_VERSION}")
211 # Now select the ITK libraries according to the ITK version found.
212 # ITK 3.x.x (mostly 3.20.1)
213 if ((${ITK_VERSION} VERSION_GREATER
"3") AND (${ITK_VERSION} VERSION_LESS
"4"))
214 if (MSVC) # Visual Studio compilers
215 if(MSVC90 OR MSVC10) #ITK 3.x only works with VS 2008 / 2010
217 debug ITKAlgorithms${CAMITK_DEBUG_POSTFIX}
218 optimized ITKAlgorithms
219 debug ITKBasicFilters${CAMITK_DEBUG_POSTFIX}
220 optimized ITKBasicFilters
221 debug ITKCommon${CAMITK_DEBUG_POSTFIX}
223 debug ITKIO${CAMITK_DEBUG_POSTFIX}
225 debug ITKNrrdIO${CAMITK_DEBUG_POSTFIX}.lib
226 debug itkgdcm${CAMITK_DEBUG_POSTFIX}.lib
227 debug itkjpeg12${CAMITK_DEBUG_POSTFIX}.lib
228 debug itkjpeg16${CAMITK_DEBUG_POSTFIX}.lib
229 debug itkopenjpeg${CAMITK_DEBUG_POSTFIX}.lib
230 debug itkpng${CAMITK_DEBUG_POSTFIX}.lib
231 debug itktiff${CAMITK_DEBUG_POSTFIX}.lib
232 debug itkjpeg8${CAMITK_DEBUG_POSTFIX}.lib
233 debug ITKSpatialObject${CAMITK_DEBUG_POSTFIX}.lib
234 debug itkvnl_inst${CAMITK_DEBUG_POSTFIX}.lib
235 debug itkvnl_algo${CAMITK_DEBUG_POSTFIX}.lib
236 debug itkv3p_netlib${CAMITK_DEBUG_POSTFIX}.lib
237 debug itkvnl${CAMITK_DEBUG_POSTFIX}.lib
238 debug itkvcl${CAMITK_DEBUG_POSTFIX}.lib
239 debug itkv3p_lsqr${CAMITK_DEBUG_POSTFIX}.lib
240 debug ITKMetaIO${CAMITK_DEBUG_POSTFIX}.lib
241 debug itksys${CAMITK_DEBUG_POSTFIX}.lib
242 debug ITKDICOMParser${CAMITK_DEBUG_POSTFIX}.lib
243 debug ITKEXPAT${CAMITK_DEBUG_POSTFIX}.lib
244 debug ITKniftiio${CAMITK_DEBUG_POSTFIX}.lib
245 debug ITKznz${CAMITK_DEBUG_POSTFIX}.lib
246 debug itkzlib${CAMITK_DEBUG_POSTFIX}.lib
254 elseif(MSVC11 OR MSVC12)
# Visual Studion 2012/2013
255 message(FATAL_ERROR
"It seems you have ITK version 3.x installed. This one is not compatible with Visual Studio 2012 or 2013. Please install ITK 4.3.x or 4.5.x instead")
258 message(FATAL_ERROR
"CamiTK does not support ITK 3.x libraries for MinGW. You may file a feature request: https://bugzilla-timc.imag.fr/")
259 else() #APPLE OR UNIX
260 set(ITK_LIBRARIES ITKBasicFilters ITKCommon ITKIO ITKAlgorithms)
263 # ITK 4.3.x (mostly 4.3.2)
264 elseif((${ITK_VERSION} VERSION_GREATER
"4") AND (${ITK_VERSION} VERSION_LESS
"4.4"))
265 if (MSVC) # Visual Studio compilers
266 if(MSVC90 OR MSVC10) #ITK 3.x only works with VS 2008 / 2010
267 message(FATAL_ERROR
"ITK version ${ITK_VERSION} is not compatible with Visual Studio 2008 or 2010. Please install ITK version 4.3.x or 4.5.x")
268 elseif(MSVC11 OR MSVC12)
# Visual Studion 2012/2013
269 link_directories(${ITK_DIR}/../..)
272 debug ITKCommon-4.3${CAMITK_DEBUG_POSTFIX}.lib
273 debug ITKNrrdIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
274 debug itkgdcmCommon-4.3${CAMITK_DEBUG_POSTFIX}.lib
275 debug itkjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
276 debug itkopenjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
277 debug itkpng-4.3${CAMITK_DEBUG_POSTFIX}.lib
278 debug itktiff-4.3${CAMITK_DEBUG_POSTFIX}.lib
279 debug ITKSpatialObjects-4.3${CAMITK_DEBUG_POSTFIX}.lib
280 debug itkvnl_algo-4.3${CAMITK_DEBUG_POSTFIX}.lib
281 debug itkv3p_netlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
282 debug itkvnl-4.3${CAMITK_DEBUG_POSTFIX}.lib
283 debug itkvcl-4.3${CAMITK_DEBUG_POSTFIX}.lib
284 debug itkv3p_lsqr-4.3${CAMITK_DEBUG_POSTFIX}.lib
285 debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
286 debug itksys-4.3${CAMITK_DEBUG_POSTFIX}.lib
287 debug ITKDICOMParser-4.3${CAMITK_DEBUG_POSTFIX}.lib
288 debug ITKEXPAT-4.3${CAMITK_DEBUG_POSTFIX}.lib
289 debug ITKniftiio-4.3${CAMITK_DEBUG_POSTFIX}.lib
290 debug ITKznz-4.3${CAMITK_DEBUG_POSTFIX}.lib
291 debug itkzlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
298 debug ITKIOGIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
299 debug ITKIONIFTI-4.3${CAMITK_DEBUG_POSTFIX}.lib
300 debug ITKIONRRD-4.3${CAMITK_DEBUG_POSTFIX}.lib
301 debug ITKIOPNG-4.3${CAMITK_DEBUG_POSTFIX}.lib
302 debug itkgdcmDICT-4.3${CAMITK_DEBUG_POSTFIX}.lib
303 debug itkgdcmDSED-4.3${CAMITK_DEBUG_POSTFIX}.lib
304 debug itkgdcmIOD-4.3${CAMITK_DEBUG_POSTFIX}.lib
305 debug itkgdcmjpeg8-4.3${CAMITK_DEBUG_POSTFIX}.lib
306 debug itkgdcmjpeg12-4.3${CAMITK_DEBUG_POSTFIX}.lib
307 debug itkgdcmjpeg16-4.3${CAMITK_DEBUG_POSTFIX}.lib
308 debug itkgdcmMSFF-4.3${CAMITK_DEBUG_POSTFIX}.lib
309 debug ITKgiftiio-4.3${CAMITK_DEBUG_POSTFIX}.lib
310 debug itkhdf5_cpp-4.3${CAMITK_DEBUG_POSTFIX}.lib
311 debug itkhdf5-4.3${CAMITK_DEBUG_POSTFIX}.lib
312 debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
313 debug ITKIOBioRad-4.3${CAMITK_DEBUG_POSTFIX}.lib
314 debug ITKIOStimulate-4.3${CAMITK_DEBUG_POSTFIX}.lib
315 debug ITKIOTIFF-4.3${CAMITK_DEBUG_POSTFIX}.lib
316 debug ITKIOVTK-4.3${CAMITK_DEBUG_POSTFIX}.lib
317 debug ITKIOPNG-4.3${CAMITK_DEBUG_POSTFIX}.lib
318 debug ITKBiasCorrection-4.3${CAMITK_DEBUG_POSTFIX}.lib
319 debug ITKBioCell-4.3${CAMITK_DEBUG_POSTFIX}.lib
320 debug ITKFEM-4.3${CAMITK_DEBUG_POSTFIX}.lib
321 debug ITKIOBMP-4.3${CAMITK_DEBUG_POSTFIX}.lib
322 debug ITKIOCSV-4.3${CAMITK_DEBUG_POSTFIX}.lib
323 debug ITKIOGDCM-4.3${CAMITK_DEBUG_POSTFIX}.lib
324 debug ITKIOGE-4.3${CAMITK_DEBUG_POSTFIX}.lib
325 debug ITKIOGIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
326 debug ITKIOHDF5-4.3${CAMITK_DEBUG_POSTFIX}.lib
327 debug ITKIOImageBase-4.3${CAMITK_DEBUG_POSTFIX}.lib
328 debug ITKIOIPL-4.3${CAMITK_DEBUG_POSTFIX}.lib
329 debug ITKIOJPEG-4.3${CAMITK_DEBUG_POSTFIX}.lib
330 debug ITKIOLSM-4.3${CAMITK_DEBUG_POSTFIX}.lib
331 debug ITKIOMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
332 debug ITKIOMeta-4.3${CAMITK_DEBUG_POSTFIX}.lib
333 debug ITKIOSiemens-4.3${CAMITK_DEBUG_POSTFIX}.lib
334 debug ITKIOSpatialObjects-4.3${CAMITK_DEBUG_POSTFIX}.lib
335 debug ITKIOTransformBase-4.3${CAMITK_DEBUG_POSTFIX}.lib
336 debug ITKIOTransformHDF5-4.3${CAMITK_DEBUG_POSTFIX}.lib
337 debug ITKIOTransformInsightLegacy-4.3${CAMITK_DEBUG_POSTFIX}.lib
338 debug ITKIOTransformMatlab-4.3${CAMITK_DEBUG_POSTFIX}.lib
339 debug ITKIOXML-4.3${CAMITK_DEBUG_POSTFIX}.lib
340 debug ITKKLMRegionGrowing-4.3${CAMITK_DEBUG_POSTFIX}.lib
341 debug ITKLabelMap-4.3${CAMITK_DEBUG_POSTFIX}.lib
342 debug ITKMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
343 debug ITKMetaIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
344 debug itkNetlibSlatec-4.3${CAMITK_DEBUG_POSTFIX}.lib
345 debug itkopenjpeg-4.3${CAMITK_DEBUG_POSTFIX}.lib
346 debug ITKOptimizers-4.3${CAMITK_DEBUG_POSTFIX}.lib
347 debug ITKOptimizersv4-4.3${CAMITK_DEBUG_POSTFIX}.lib
348 debug ITKPath-4.3${CAMITK_DEBUG_POSTFIX}.lib
349 debug itkpng-4.3${CAMITK_DEBUG_POSTFIX}.lib
350 debug ITKPolynomials-4.3${CAMITK_DEBUG_POSTFIX}.lib
351 debug ITKQuadEdgeMesh-4.3${CAMITK_DEBUG_POSTFIX}.lib
352 debug ITKReview-4.3${CAMITK_DEBUG_POSTFIX}.lib
353 debug ITKStatistics-4.3${CAMITK_DEBUG_POSTFIX}.lib
354 debug itkv3p_lsqr-4.3${CAMITK_DEBUG_POSTFIX}.lib
355 debug itkv3p_netlib-4.3${CAMITK_DEBUG_POSTFIX}.lib
356 debug itkvcl-4.3${CAMITK_DEBUG_POSTFIX}.lib
357 debug ITKVideoCore-4.3${CAMITK_DEBUG_POSTFIX}.lib
358 debug ITKVideoIO-4.3${CAMITK_DEBUG_POSTFIX}.lib
359 debug ITKVTK-4.3${CAMITK_DEBUG_POSTFIX}.lib
360 debug ITKVNLInstantiation-4.3${CAMITK_DEBUG_POSTFIX}.lib
361 debug ITKWatersheds-4.3${CAMITK_DEBUG_POSTFIX}.lib
362 # Release librariesdebug
363 optimized ITKCommon-4.3.lib
364 optimized ITKNrrdIO-4.3.lib
365 optimized itkgdcmCommon-4.3.lib
366 optimized itkjpeg-4.3.lib
367 optimized itkopenjpeg-4.3.lib
368 optimized itkpng-4.3.lib
369 optimized itktiff-4.3.lib
370 optimized ITKSpatialObjects-4.3.lib
371 optimized itkvnl_algo-4.3.lib
372 optimized itkv3p_netlib-4.3.lib
373 optimized itkvnl-4.3.lib
374 optimized itkvcl-4.3.lib
375 optimized itkv3p_lsqr-4.3.lib
376 optimized ITKMetaIO-4.3.lib
377 optimized itksys-4.3.lib
378 optimized ITKDICOMParser-4.3.lib
379 optimized ITKEXPAT-4.3.lib
380 optimized ITKniftiio-4.3.lib
381 optimized ITKznz-4.3.lib
382 optimized itkzlib-4.3.lib
383 optimized snmpapi.lib
386 optimized comctl32.lib
387 optimized wsock32.lib
388 optimized opengl32.lib
389 optimized ITKIOGIPL-4.3.lib
390 optimized ITKIONIFTI-4.3.lib
391 optimized ITKIONRRD-4.3.lib
392 optimized ITKIOPNG-4.3.lib
393 optimized itkgdcmDICT-4.3.lib
394 optimized itkgdcmDSED-4.3.lib
395 optimized itkgdcmIOD-4.3.lib
396 optimized itkgdcmjpeg8-4.3.lib
397 optimized itkgdcmjpeg12-4.3.lib
398 optimized itkgdcmjpeg16-4.3.lib
399 optimized itkgdcmMSFF-4.3.lib
400 optimized ITKgiftiio-4.3.lib
401 optimized itkhdf5_cpp-4.3.lib
402 optimized itkhdf5-4.3.lib
403 optimized ITKMetaIO-4.3.lib
404 optimized ITKIOBioRad-4.3.lib
405 optimized ITKIOStimulate-4.3.lib
406 optimized ITKIOTIFF-4.3.lib
407 optimized ITKIOVTK-4.3.lib
408 optimized ITKIOPNG-4.3.lib
409 optimized ITKBiasCorrection-4.3.lib
410 optimized ITKBioCell-4.3.lib
411 optimized ITKFEM-4.3.lib
412 optimized ITKIOBMP-4.3.lib
413 optimized ITKIOCSV-4.3.lib
414 optimized ITKIOGDCM-4.3.lib
415 optimized ITKIOGE-4.3.lib
416 optimized ITKIOGIPL-4.3.lib
417 optimized ITKIOHDF5-4.3.lib
418 optimized ITKIOImageBase-4.3.lib
419 optimized ITKIOIPL-4.3.lib
420 optimized ITKIOJPEG-4.3.lib
421 optimized ITKIOLSM-4.3.lib
422 optimized ITKIOMesh-4.3.lib
423 optimized ITKIOMeta-4.3.lib
424 optimized ITKIOSiemens-4.3.lib
425 optimized ITKIOSpatialObjects-4.3.lib
426 optimized ITKIOTransformBase-4.3.lib
427 optimized ITKIOTransformHDF5-4.3.lib
428 optimized ITKIOTransformInsightLegacy-4.3.lib
429 optimized ITKIOTransformMatlab-4.3.lib
430 optimized ITKIOXML-4.3.lib
431 optimized ITKKLMRegionGrowing-4.3.lib
432 optimized ITKLabelMap-4.3.lib
433 optimized ITKMesh-4.3.lib
434 optimized ITKMetaIO-4.3.lib
435 optimized itkNetlibSlatec-4.3.lib
436 optimized itkopenjpeg-4.3.lib
437 optimized ITKOptimizers-4.3.lib
438 optimized ITKOptimizersv4-4.3.lib
439 optimized ITKPath-4.3.lib
440 optimized itkpng-4.3.lib
441 optimized ITKPolynomials-4.3.lib
442 optimized ITKQuadEdgeMesh-4.3.lib
443 optimized ITKReview-4.3.lib
444 optimized ITKStatistics-4.3.lib
445 optimized itkv3p_lsqr-4.3.lib
446 optimized itkv3p_netlib-4.3.lib
447 optimized itkvcl-4.3.lib
448 optimized ITKVideoCore-4.3.lib
449 optimized ITKVideoIO-4.3.lib
450 optimized ITKVTK-4.3.lib
451 optimized ITKVNLInstantiation-4.3.lib
452 optimized ITKWatersheds-4.3.lib
455 elseif(MINGW OR APPLE)
456 link_directories(${ITK_DIR}/../..)
465 ITKSpatialObjects-4.3
504 ITKBiasCorrection-4.3
520 ITKIOSpatialObjects-4.3
521 ITKIOTransformBase-4.3
522 ITKIOTransformHDF5-4.3
523 ITKIOTransformInsightLegacy-4.3
524 ITKIOTransformMatlab-4.3
526 ITKKLMRegionGrowing-4.3
546 ITKVNLInstantiation-4.3
550 set(ITK_LIBRARIES ITKCommon-4.3)
553 # ITK 4.5.x (mostly 4.5.1)
554 elseif((${ITK_VERSION} VERSION_GREATER
"4.4") AND (${ITK_VERSION} VERSION_LESS
"4.7"))
556 if(MSVC90 OR MSVC10) #ITK 3.x only works with VS 2008 / 2010
557 message(FATAL_ERROR
"ITK version ${ITK_VERSION} is not compatible with Visual Studio 2008 or 2010. Please install ITK version 3.20.1")
558 elseif(MSVC11 OR MSVC12)
# Visual Studion 2012/2013
559 link_directories(${ITK_DIR}/../..)
561 optimized TKIOBioRad-4.5.lib
562 optimized ITKIOStimulate-4.5.lib
563 optimized itkpng-4.5.lib
564 debug ITKBiasCorrection-4.5${CAMITK_DEBUG_POSTFIX}.lib
565 debug ITKIOBMP-4.5${CAMITK_DEBUG_POSTFIX}.lib
566 debug ITKIOTIFF-4.5${CAMITK_DEBUG_POSTFIX}.lib
567 debug ITKPolynomials-4.5${CAMITK_DEBUG_POSTFIX}.lib
568 optimized ITKBiasCorrection-4.5.lib
569 optimized ITKIOBMP-4.5.lib
570 optimized ITKIOTIFF-4.5.lib
571 optimized ITKPolynomials-4.5.lib
572 debug ITKBioCell-4.5${CAMITK_DEBUG_POSTFIX}.lib
573 debug ITKIOCSV-4.5${CAMITK_DEBUG_POSTFIX}.lib
574 debug ITKIOTransformBase-4.5${CAMITK_DEBUG_POSTFIX}.lib
575 debug ITKQuadEdgeMesh-4.5${CAMITK_DEBUG_POSTFIX}.lib
576 optimized ITKBioCell-4.5.lib
577 optimized ITKIOCSV-4.5.lib
578 optimized ITKIOTransformBase-4.5.lib
579 optimized ITKQuadEdgeMesh-4.5.lib
580 debug ITKCommon-4.5${CAMITK_DEBUG_POSTFIX}.lib
581 debug ITKIOGDCM-4.5${CAMITK_DEBUG_POSTFIX}.lib
582 debug ITKIOTransformHDF5-4.5${CAMITK_DEBUG_POSTFIX}.lib
583 debug ITKSpatialObjects-4.5${CAMITK_DEBUG_POSTFIX}.lib
584 optimized ITKCommon-4.5.lib
585 optimized ITKIOGDCM-4.5.lib
586 optimized ITKIOTransformHDF5-4.5.lib
587 optimized ITKSpatialObjects-4.5.lib
588 debug ITKDICOMParser-4.5${CAMITK_DEBUG_POSTFIX}.lib
589 debug debug ITKIOGE-4.5${CAMITK_DEBUG_POSTFIX}.lib
590 debug ITKIOTransformInsightLegacy-4.5${CAMITK_DEBUG_POSTFIX}.lib
591 debug ITKStatistics-4.5${CAMITK_DEBUG_POSTFIX}.lib
592 optimized ITKDICOMParser-4.5.lib
593 optimized ITKIOGE-4.5.lib
594 optimized ITKIOTransformInsightLegacy-4.5.lib
595 optimized ITKStatistics-4.5.lib
596 debug itkdouble-conversion-4.5${CAMITK_DEBUG_POSTFIX}.lib
597 debug ITKIOGIPL-4.5${CAMITK_DEBUG_POSTFIX}.lib
598 debug ITKIOTransformMatlab-4.5${CAMITK_DEBUG_POSTFIX}.lib
599 debug itksys-4.5${CAMITK_DEBUG_POSTFIX}.lib
600 optimized itkdouble-conversion-4.5.lib
601 optimized ITKIOGIPL-4.5.lib
602 optimized ITKIOTransformMatlab-4.5.lib
603 optimized itksys-4.5.lib
604 debug ITKEXPAT-4.5${CAMITK_DEBUG_POSTFIX}.lib
605 debug ITKIOHDF5-4.5${CAMITK_DEBUG_POSTFIX}.lib
606 debug ITKIOVTK-4.5${CAMITK_DEBUG_POSTFIX}.lib
607 debug itktiff-4.5${CAMITK_DEBUG_POSTFIX}.lib
608 optimized ITKEXPAT-4.5.lib
609 optimized ITKIOHDF5-4.5.lib
610 optimized ITKIOVTK-4.5.lib
611 optimized itktiff-4.5.lib
612 debug ITKFEM-4.5${CAMITK_DEBUG_POSTFIX}.lib
613 debug ITKIOImageBase-4.5${CAMITK_DEBUG_POSTFIX}.lib
614 debug ITKIOXML-4.5${CAMITK_DEBUG_POSTFIX}.lib
615 debug itkv3p_lsqr-4.5${CAMITK_DEBUG_POSTFIX}.lib
616 optimized ITKFEM-4.5.lib
617 optimized ITKIOImageBase-4.5.lib
618 optimized ITKIOXML-4.5.lib
619 optimized itkv3p_lsqr-4.5.lib
620 debug itkgdcmCommon-4.5${CAMITK_DEBUG_POSTFIX}.lib
621 debug ITKIOIPL-4.5${CAMITK_DEBUG_POSTFIX}.lib
622 debug itkjpeg-4.5${CAMITK_DEBUG_POSTFIX}.lib
623 debug itkv3p_netlib-4.5${CAMITK_DEBUG_POSTFIX}.lib
624 optimized itkgdcmCommon-4.5.lib
625 optimized ITKIOIPL-4.5.lib
626 optimized itkjpeg-4.5.lib
627 optimized itkv3p_netlib-4.5.lib
628 debug itkgdcmDICT-4.5${CAMITK_DEBUG_POSTFIX}.lib
629 debug ITKIOJPEG-4.5${CAMITK_DEBUG_POSTFIX}.lib
630 debug ITKKLMRegionGrowing-4.5${CAMITK_DEBUG_POSTFIX}.lib
631 debug itkvcl-4.5${CAMITK_DEBUG_POSTFIX}.lib
632 optimized itkgdcmDICT-4.5.lib
633 optimized ITKIOJPEG-4.5.lib
634 optimized ITKKLMRegionGrowing-4.5.lib
635 optimized itkvcl-4.5.lib
636 debug itkgdcmDSED-4.5${CAMITK_DEBUG_POSTFIX}.lib
637 debug ITKIOLSM-4.5${CAMITK_DEBUG_POSTFIX}.lib
638 debug ITKLabelMap-4.5${CAMITK_DEBUG_POSTFIX}.lib
639 debug ITKVideoCore-4.5${CAMITK_DEBUG_POSTFIX}.lib
640 optimized itkgdcmDSED-4.5.lib
641 optimized ITKIOLSM-4.5.lib
642 optimized ITKLabelMap-4.5.lib
643 optimized ITKVideoCore-4.5.lib
644 optimized itkgdcmIOD-4.5${CAMITK_DEBUG_POSTFIX}.lib
645 optimized ITKIOMesh-4.5${CAMITK_DEBUG_POSTFIX}.lib
646 optimized ITKMesh-4.5${CAMITK_DEBUG_POSTFIX}.lib
647 optimized ITKVideoIO-4.5${CAMITK_DEBUG_POSTFIX}.lib
648 optimized itkgdcmIOD-4.5.lib
649 optimized ITKIOMesh-4.5.lib
650 optimized ITKMesh-4.5.lib
651 optimized ITKVideoIO-4.5.lib
652 debug itkgdcmjpeg12-4.5${CAMITK_DEBUG_POSTFIX}.lib
653 debug ITKIOMeta-4.5${CAMITK_DEBUG_POSTFIX}.lib
654 debug ITKMetaIO-4.5${CAMITK_DEBUG_POSTFIX}.lib
655 debug itkvnl-4.5${CAMITK_DEBUG_POSTFIX}.lib
656 debug itkgdcmjpeg12-4.5.lib
657 optimized ITKIOMeta-4.5.lib
658 optimized ITKMetaIO-4.5.lib
659 optimized itkvnl-4.5.lib
660 debug itkgdcmjpeg16-4.5${CAMITK_DEBUG_POSTFIX}.lib
661 debug ITKIOMRC-4.5${CAMITK_DEBUG_POSTFIX}.lib
662 debug itkNetlibSlatec-4.5${CAMITK_DEBUG_POSTFIX}.lib
663 debug itkvnl_algo-4.5${CAMITK_DEBUG_POSTFIX}.lib
664 optimized itkgdcmjpeg16-4.5.lib
665 optimized ITKIOMRC-4.5.lib
666 optimized itkNetlibSlatec-4.5.lib
667 optimized itkvnl_algo-4.5.lib
668 debug itkgdcmjpeg8-4.5${CAMITK_DEBUG_POSTFIX}.lib
669 debug ITKIONIFTI-4.5${CAMITK_DEBUG_POSTFIX}.lib
670 debug ITKniftiio-4.5${CAMITK_DEBUG_POSTFIX}.lib
671 debug ITKVNLInstantiation-4.5${CAMITK_DEBUG_POSTFIX}.lib
672 optimized itkgdcmjpeg8-4.5.lib
673 optimized ITKIONIFTI-4.5.lib
674 optimized ITKniftiio-4.5.lib
675 optimized ITKVNLInstantiation-4.5.lib
676 debug itkgdcmMSFF-4.5${CAMITK_DEBUG_POSTFIX}.lib
677 debug ITKIONRRD-4.5${CAMITK_DEBUG_POSTFIX}.lib
678 debug ITKNrrdIO-4.5${CAMITK_DEBUG_POSTFIX}.lib
679 debug ITKVTK-4.5${CAMITK_DEBUG_POSTFIX}.lib
680 optimized itkgdcmMSFF-4.5.lib
681 optimized ITKIONRRD-4.5.lib
682 optimized ITKNrrdIO-4.5.lib
683 optimized ITKVTK-4.5.lib
684 debug ITKgiftiio-4.5${CAMITK_DEBUG_POSTFIX}.lib
685 debug ITKIOPNG-4.5${CAMITK_DEBUG_POSTFIX}.lib
686 debug itkopenjpeg-4.5${CAMITK_DEBUG_POSTFIX}.lib
687 debug ITKWatersheds-4.5${CAMITK_DEBUG_POSTFIX}.lib
688 optimized ITKgiftiio-4.5.lib
689 optimized ITKIOPNG-4.5.lib
690 optimized itkopenjpeg-4.5.lib
691 optimized ITKWatersheds-4.5.lib
692 debug itkhdf5-4.5${CAMITK_DEBUG_POSTFIX}.lib
693 debug ITKIOSiemens-4.5${CAMITK_DEBUG_POSTFIX}.lib
694 debug ITKOptimizers-4.5${CAMITK_DEBUG_POSTFIX}.lib
695 debug itkzlib-4.5${CAMITK_DEBUG_POSTFIX}.lib
696 optimized itkhdf5-4.5.lib
697 optimized ITKIOSiemens-4.5.lib
698 optimized ITKOptimizers-4.5.lib
699 optimized itkzlib-4.5.lib
700 debug itkhdf5_cpp-4.5${CAMITK_DEBUG_POSTFIX}.lib
701 debug ITKIOSpatialObjects-4.5${CAMITK_DEBUG_POSTFIX}.lib
702 debug ITKPath-4.5${CAMITK_DEBUG_POSTFIX}.lib
703 debug ITKznz-4.5${CAMITK_DEBUG_POSTFIX}.lib
704 optimized itkhdf5_cpp-4.5.lib
705 optimized ITKIOSpatialObjects-4.5.lib
706 optimized ITKPath-4.5.lib
707 optimized ITKznz-4.5.lib
708 debug ITKIOBioRad-4.5${CAMITK_DEBUG_POSTFIX}.lib
709 debug ITKIOStimulate-4.5${CAMITK_DEBUG_POSTFIX}.lib
710 debug itkpng-4.5${CAMITK_DEBUG_POSTFIX}.lib
714 message(FATAL_ERROR
"ITK version 4.5.x is not supported yet for MinGW compiler. You may file a feature request: https://bugzilla-timc.imag.fr/")
723 ITKGPUAnisotropicSmoothing
725 ITKGPUFiniteDifference
726 ITKGPUImageFilterBase
752 ITKIOTransformInsightLegacy
794 # ITK_LIBRARIES is already set
797 # ITK version > 4.6 (mostly ITK 5.x)
799 message(FATAL_ERROR
"CamiTK does not support yet ITK version 5.x. You may file a feature request: https://bugzilla-timc.imag.fr/")
805 set(LIBXML2_LIBRARY
"")
806 if(${EXTENSION_NAME_CMAKE}_NEEDS_LIBXML2)
807 # LibXml2 is required
810 add_definitions(${LIBXML2_DEFINITIONS})
811 include_directories(${LIBXML2_INCLUDE_DIR})
812 set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
814 # most probably win32 or crosscompiling
815 message(STATUS
"${EXTENSION_NAME}: libxml2 required")
820 set(OpenCV_LIBRARIES
"")
821 if(${EXTENSION_NAME_CMAKE}_NEEDS_OPENCV)
823 find_package( OpenCV REQUIRED )
825 set(OpenCV_LIBRARIES
"")
829 set(IGSTK_LIBRARIES
"")
830 if(${EXTENSION_NAME_CMAKE}_NEEDS_IGSTK)
831 find_package(IGSTK REQUIRED)
834 set(IGSTK_LIBRARIES
"")
838 set(XERCESC_LIBRARIES)
839 if(${EXTENSION_NAME_CMAKE}_NEEDS_XERCESC)
840 # XercesC is required
841 find_package(XercesC REQUIRED)
843 include_directories(${XERCESC_INCLUDE_DIR})
844 set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
846 # most probably win32 or crosscompiling
847 message(FATAL_ERROR
"${EXTENSION_NAME}: xerces-c required. Please provide Xerces-C path.")
852 if(${EXTENSION_NAME_CMAKE}_NEEDS_XSD)
853 # XercesC is required
854 find_package(XercesC REQUIRED)
856 include_directories(${XERCESC_INCLUDE_DIR})
857 set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
858 find_package(XSD REQUIRED)
859 include_directories(${XSD_INCLUDE_DIR})
861 # most probably win32 or crosscompiling
862 message(FATAL_ERROR
"${EXTENSION_NAME}: xerces-c required because of XSD cxx, please set XERCESC_INCLUDE_DIR")
868 if(${EXTENSION_NAME_CMAKE}_NEEDS_GDCM)
870 # Look for GDCM library only if not found (for instance, ITK has already search for it)
871 # Calling find_package(GDCM ..) more than once creates CMake errors.
872 find_package(GDCM 2.0 REQUIRED)
878 debug ${GDCM_DIR}/../gdcmcharls${CAMITK_DEBUG_POSTFIX}
879 debug ${GDCM_DIR}/../gdcmCommon${CAMITK_DEBUG_POSTFIX}
880 debug ${GDCM_DIR}/../gdcmDICT${CAMITK_DEBUG_POSTFIX}
881 debug ${GDCM_DIR}/../gdcmDSED${CAMITK_DEBUG_POSTFIX}
882 debug ${GDCM_DIR}/../gdcmexpat${CAMITK_DEBUG_POSTFIX}
883 debug ${GDCM_DIR}/../gdcmgetopt${CAMITK_DEBUG_POSTFIX}
884 debug ${GDCM_DIR}/../gdcmIOD${CAMITK_DEBUG_POSTFIX}
885 debug ${GDCM_DIR}/../gdcmjpeg8${CAMITK_DEBUG_POSTFIX}
886 debug ${GDCM_DIR}/../gdcmjpeg12${CAMITK_DEBUG_POSTFIX}
887 debug ${GDCM_DIR}/../gdcmjpeg16${CAMITK_DEBUG_POSTFIX}
888 debug ${GDCM_DIR}/../gdcmMEXD${CAMITK_DEBUG_POSTFIX}
889 debug ${GDCM_DIR}/../gdcmMSFF${CAMITK_DEBUG_POSTFIX}
890 debug ${GDCM_DIR}/../gdcmopenjpeg${CAMITK_DEBUG_POSTFIX}
891 debug ${GDCM_DIR}/../gdcmzlib${CAMITK_DEBUG_POSTFIX}
892 debug ${GDCM_DIR}/../socketxx${CAMITK_DEBUG_POSTFIX}
893 debug ${GDCM_DIR}/../vtkgdcm${CAMITK_DEBUG_POSTFIX}
894 debug ${GDCM_DIR}/../gdcmDSED${CAMITK_DEBUG_POSTFIX}
895 optimized gdcmcharls gdcmCommon gdcmDICT gdcmDSED gdcmexpat
896 optimized gdcmgetopt gdcmIOD gdcmjpeg8 gdcmjpeg12 gdcmjpeg16
897 optimized gdcmMEXD gdcmMSFF gdcmopenjpeg gdcmzlib socketxx vtkgdcm
901 set(GDCM_LIBRARIES gdcmCommon gdcmDICT gdcmDSED gdcmMEXD gdcmMSFF vtkgdcm)
904 message(ERROR
"${EXTENSION_NAME}: GDCM 2.x library required. Please install GDCM.")
908 # ADDTIONAL QT MODULES
909 set(QT_MODULES_LIBRARIES)
910 if(${EXTENSION_NAME_CMAKE}_NEEDS_QT_MODULES)
911 find_package(Qt4
"4.7" COMPONENTS QtCore QtGui QtXml QtXmlPatterns QtWebkit QtOpenGL QtScript QtSQL QtNetwork REQUIRED)
913 message(SEND_ERROR
"${EXTENSION_NAME} : Failed to find Qt 4.7 or greater. This is needed by CamiTK.")
916 # CMake will add the Qt modules specific include directories
919 #
Qt additional modules are required
for linking
920 set(QT_MODULES_LIBRARIES ${QT_LIBRARIES})
924 set(EXTERNAL_LIBRARIES)
925 if(${EXTENSION_NAME_CMAKE}_EXTERNAL_LIBRARIES)
926 foreach(EXTERNAL_LIBRARY ${${EXTENSION_NAME_CMAKE}_EXTERNAL_LIBRARIES})
928 set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES}
929 debug ${EXTERNAL_LIBRARY}${CAMITK_DEBUG_POSTFIX}
930 optimized ${EXTERNAL_LIBRARY}
933 set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} ${EXTERNAL_LIBRARY})
938 # BACKWARD COMPATIBILITY
940 # TODO CAMITK_DEPRECATED. This option is marked as deprecated. It is to be removed in CamiTK 4.0
941 if(${EXTENSION_NAME_CMAKE}_NEEDS_TOOL)
942 message(WARNING
"Warning: ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt: camitk_extension macro option NEEDS_TOOL is deprecated, please use NEEDS_CEP_LIBRARIES instead..")
943 set(${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES ${${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES} ${${EXTENSION_NAME_CMAKE}_NEEDS_TOOL})
948 #########################################################################
952 # * Link directories are used to indicate the compiler where #
953 # to look for folder containing libraries to link with. #
955 #########################################################################
957 # CAMITK BASIC LIB DIRECTORIES
958 link_directories(${CAMITK_LINK_DIRECTORIES})
962 #########################################################################
964 # TARGET COMPILATION DEFINITION #
966 # * Additional sources files to consider at compilation (.cpp)
#
967 # * CMake project target definition #
969 #########################################################################
971 set(${EXTENSION_NAME_CMAKE}_SOURCES ${${EXTENSION_NAME_CMAKE}_SOURCES} ${${EXTENSION_NAME_CMAKE}_EXTERNAL_SOURCES})
973 # CMAKE TARGET DEFINITION
974 add_library(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} SHARED ${${EXTENSION_NAME_CMAKE}_SOURCES})
978 #########################################################################
980 # CAMITK ACTION / COMPONENT / LIBRARIES DEPENDENCIES #
982 # * Look
for action / component / libraries dependencies #
983 # * Specific actions / components / libraries are specified as option #
984 # with the NEEDS_ACTION/COMPONENT_EXTENSION/CEP_LIBRARIES syntax #
985 # * Add dependencies to library-camitkcore and the testing #
986 # action/component
if test are runned on
it #
988 #########################################################################
990 # 1st CAMITKCORE LIBRARY DEPENDENCY
991 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} ${CAMITK_CORE_TARGET_LIB_NAME})
993 # 2nd COMPONENTS DEPENDENCIES
994 if(${EXTENSION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION)
995 set(COMPONENTS_DEPENDENCY_LIST
"")
#use for generating the project.xml file
996 foreach(COMPONENT_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION})
997 #
include directories from build,
camitk (local or global install).
998 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
999 include_directories(${CAMITK_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
1002 set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES}
1003 debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/components/${COMPONENT_NEEDED}${CAMITK_DEBUG_POSTFIX}
1004 optimized ${COMPONENT_NEEDED}
1007 set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES} ${COMPONENT_NEEDED})
1009 # CMake / CDash dependencies
1011 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} component_${COMPONENT_NEEDED})
1013 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} component-${COMPONENT_NEEDED})
1014 set(COMPONENTS_DEPENDENCY_LIST ${COMPONENTS_DEPENDENCY_LIST} component-${COMPONENT_NEEDED})
1019 # 3rd ACTIONS DEPENDENCIES
1020 if(${EXTENSION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION)
1021 set(ACTIONS_DEPENDENCY_LIST
"") #use
for generating the project.xml file
1022 foreach(ACTION_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION})
1023 #
include directories from build,
camitk (local or global install).
1024 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/actions/${ACTION_NEEDED})
1025 include_directories(${CAMITK_INCLUDE_DIR}/actions/${ACTION_NEEDED})
1028 set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES}
1029 debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/actions/${ACTION_NEEDED}${CAMITK_DEBUG_POSTFIX}
1030 optimized ${ACTION_NEEDED}
1033 set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES} ${ACTION_NEEDED})
1035 # CMake / CDash dependencies
1037 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} action_${ACTION_NEEDED})
1039 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} action-${ACTION_NEEDED})
1040 set(ACTIONS_DEPENDENCY_LIST ${ACTIONS_DEPENDENCY_LIST} action-${ACTION_NEEDED})
1045 # 4th CEP LIBRARIES DEPENDENCIES
1046 if(${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES)
1047 set(CEP_LIBRARIES_DEPENDENCY_LIST
"") #use
for generating the project.xml file
1048 foreach(CEP_LIBRARY_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES})
1049 #
include directories from build,
camitk (local or global install).
1050 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
1051 include_directories(${CAMITK_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
1054 set(CEP_LIBRARIES ${CEP_LIBRARIES} debug ${CEP_LIBRARY_NEEDED}${CAMITK_DEBUG_POSTFIX}
1055 optimized ${CEP_LIBRARY_NEEDED}
1059 set(CEP_LIBRARIES ${CEP_LIBRARIES} ${CEP_LIBRARY_NEEDED})
1061 set(CEP_LIBRARIES ${CEP_LIBRARIES} ${CEP_LIBRARY_NEEDED})
1064 # CMake / CDash dependencies
1066 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} library_${CEP_LIBRARY_NEEDED})
1068 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} library-${CEP_LIBRARY_NEEDED})
1069 set(CEP_LIBRARIES_DEPENDENCY_LIST ${CEP_LIBRARIES_DEPENDENCY_LIST} library-${CEP_LIBRARY_NEEDED})
1074 # 5th DEPENDENCY ON TESTING APPLICATION
1075 # Those projects are used to run unitarian test on ACTION / COMPONENT extensions.
1076 set(APPLICATIONS_DEPENDENCY_LIST
"")
1077 if(${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
1078 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} application-test${TYPE_EXTENSION}s)
1079 set(APPLICATIONS_DEPENDENCY_LIST
"application-test${TYPE_EXTENSION}s")
1080 # Add this dependencies for automatically constructing application-testactions components dependencies
1083 if((CEP_NAME STREQUAL
"SDK") OR (CEP_NAME STREQUAL
"modeling") OR (CEP_NAME STREQUAL
"imaging"))
1084 # 6th TEST-COMPONENT APPLICATION DEPENDENCY ON THIS COMPONENT
1085 if(${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
1086 add_dependencies(application-testactions ${COMPONENT_TARGET_NAME})
1089 # 7th TEST-ACTION APPLICATION DEPENDENCY ON ACTION-APPLICATION
1090 if(${TYPE_EXTENSION_CMAKE}_TARGET_NAME STREQUAL
"action-application")
1091 add_dependencies(application-testcomponents action-application)
1096 #########################################################################
1098 # COMPILATION FLAG #
1100 # * Flags are options to give to the compiler #
1101 # * Add user input flags #
1102 # * Add platform specific flags #
1104 #########################################################################
1106 # USER INPUT DEFINES COMPILER FLAG
1107 if(${EXTENSION_NAME_CMAKE}_DEFINES)
1108 foreach (FLAG ${${EXTENSION_NAME_CMAKE}_DEFINES})
1109 add_definitions(-D${FLAG})
1113 # USER INPUT CUSTOM COMPILER FLAG
1114 if(${EXTENSION_NAME_CMAKE}_CXX_FLAGS)
1115 foreach (FLAG ${${EXTENSION_NAME_CMAKE}_CXX_FLAGS})
1116 set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} ${FLAG}")
1120 # PLATFORM SPECIFIC COMPILER FLAG
1121 # 64bits and other platform with relocation needs -fPIC
1123 check_cxx_accepts_flag(-fPIC FPIC_FLAG_ACCEPTED)
1124 # no need to add -fPIC on mingw, otherwise it generates a warning: -fPIC ignored for target (all code is position independent) [enabled by default]
1125 # msvc is also accepting the flag, but then produce warning D9002 : ignoring unknown option '-fPIC' cl
1126 if(FPIC_FLAG_ACCEPTED AND NOT WIN32)
1127 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY COMPILE_FLAGS -fPIC)
1132 #########################################################################
1136 # * Linking is the last stage of compilation #
1137 # * Indicate what libraries to use for linking the target #
1139 #########################################################################
1141 # Any component or action has to be linked with ${CAMITK_CORE_LIBRARIES} and with all its dependencies
1142 target_link_libraries(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} ${CAMITK_CORE_LIBRARIES} ${CAMITK_LIBRARIES} ${COMPONENT_EXTENSION_LIBRARIES} ${ACTION_EXTENSION_LIBRARIES} ${CEP_LIBRARIES} ${QT_MODULES_LIBRARIES} ${ITK_LIBRARIES} ${LIBXML2_LIBRARY} ${OpenCV_LIBRARIES} ${IGSTK_LIBRARIES} ${XERCESC_LIBRARIES} ${GDCM_LIBRARIES} ${EXTERNAL_LIBRARIES})
1146 #########################################################################
1150 # * Define the
output directory (location and
name)
#
1151 # * Define the output name of the library #
1152 # * Add ${CAMITK_DEBUG_POSTFIX} suffix to Debug MSVC built libraries #
1153 # * Additional Linux .so files information #
1155 #########################################################################
1157 # OUTPUT LIBRARY NAME
1158 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1159 PROPERTIES OUTPUT_NAME ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}
1162 # OUTPUT DIRECTORY LOCATION AND NAME
1163 # Output directory (all extensions are
private)
1164 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1165 LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1166 LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1168 # Output directory (
for dll plateform,
this is still the same, extensions are
private)
1169 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1170 RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1171 RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1173 # Output directory (
for dll plateform,
this is still the same, extensions are
private)
1174 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1175 ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1176 ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
1179 # OUTPUT LIBRARY NAME MSVC in DEBUG mode
1181 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES DEBUG_POSTFIX ${CAMITK_DEBUG_POSTFIX})
1184 # ADDITIONAL LINUX .so FILE INFORMATION
1185 set(${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES ${${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES}
1186 VERSION
"${CAMITK_VERSION_MAJOR}.${CAMITK_VERSION_MINOR}.${CAMITK_VERSION_PATCH}"
1187 SOVERSION
"${CAMITK_VERSION_MAJOR}"
1189 #
set the library specific info (SONAME...)
1190 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES ${${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES} LINK_INTERFACE_LIBRARIES
"")
1193 # target properties (outputname and
remove soname)
1194 # set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTY NO_SONAME 1)
1195 # in CEP the version patch might not have been set
1196 if (NOT CAMITK_VERSION_PATCH)
1197 set(CAMITK_VERSION_PATCH 0)
1202 #########################################################################
1206 # * When installing the project, header files (.h) and test data are #
1207 # copied into a installation folder to determine. #
1208 # * Indicate in this section, where to install your project and which #
1209 # files to copy into that folder (during local/global installation) #
1211 #########################################################################
1213 # FOLDER INSTALLATION
1214 # Indicate where to install the action/component
1215 install(TARGETS ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1216 # TODO always use private lib, even for runtime
1217 RUNTIME DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
1218 LIBRARY DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
1219 ARCHIVE DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
1220 COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1223 # HEADERS INSTALLATION
1224 # Build target to install provided headers to install (with HEADERS_TO_INSTALL option)
1225 if(${EXTENSION_NAME_CMAKE}_HEADERS_TO_INSTALL)
1226 export_headers(${${EXTENSION_NAME_CMAKE}_HEADERS_TO_INSTALL} COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} GROUP ${TYPE_EXTENSION}s)
1229 # Build target to install all header files(with INSTALL_ALL_HEADERS option)
1230 if(${EXTENSION_NAME_CMAKE}_INSTALL_ALL_HEADERS)
1231 export_headers(${${EXTENSION_NAME_CMAKE}_HEADERS} COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} GROUP ${TYPE_EXTENSION}s)
1234 # TESTDATA INSTALLATION
1235 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/testdata)
1236 # Check test data dir directory
1237 if (NOT EXISTS ${CAMITK_BUILD_TESTDATA_DIR})
1238 make_directory( ${CAMITK_BUILD_TESTDATA_DIR} )
1241 # copy the files to test data directory
1242 execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory testdata ${CAMITK_BUILD_TESTDATA_DIR}
1243 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
1246 # during installation, copy the files to install directory
1247 set (TESTDATA_DEST_DIR share/${CAMITK_SHORT_VERSION_STRING}/testdata)
1248 install(DIRECTORY testdata/
1249 #DESTINATION share/testdata
1250 #DESTINATION share/${CAMITK_SHORT_VERSION_STRING}/testdata
1251 DESTINATION ${TESTDATA_DEST_DIR}
1252 # COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1253 PATTERN
".svn" EXCLUDE
1254 PATTERN
"*~" EXCLUDE
1258 # CTESTDATA INSTALLATION
1259 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/testdata/ctestdata)
1260 # Check test data dir directory
1261 if (NOT EXISTS ${CAMITK_BUILD_CTESTDATA_DIR})
1262 add_custom_command(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1264 COMMAND ${CMAKE_COMMAND} -E make_directory ${CAMITK_BUILD_CTESTDATA_DIR}
1265 COMMENT
"Creating build-time share directory for test data ${CAMITK_BUILD_CTESTDATA_DIR}"
1270 # At build time, copy the files to test data directory
1271 add_custom_command(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1273 COMMAND ${CMAKE_COMMAND} -E copy_directory testdata/ctestdata ${CAMITK_BUILD_CTESTDATA_DIR}
1274 COMMENT
"Installing build-time test data for ${EXTENSION_NAME}"
1275 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
1279 # during installation, copy the files to install directory
1280 set (CTESTDATA_DEST_DIR share/${CAMITK_SHORT_VERSION_STRING}/testdata/ctestdata)
1281 install(DIRECTORY testdata/ctestdata
1282 DESTINATION ${CTESTDATA_DEST_DIR}
1283 PATTERN
".svn" EXCLUDE
1284 PATTERN
"*~" EXCLUDE
1290 #########################################################################
1292 # CDASH SUBPROJECT DESCRIPTION #
1294 # * Update the XML description of the subprojects dependencies #
1297 #########################################################################
1298 # CDASH XML SUBPROJECTS DESCRIPTION UPDATE
1299 camitk_sub_project_add(${TYPE_EXTENSION_CMAKE} ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} DEPENDENCIES library-camitkcore ${COMPONENTS_DEPENDENCY_LIST} ${ACTIONS_DEPENDENCY_LIST} ${CEP_LIBRARIES_DEPENDENCY_LIST} ${APPLICATIONS_DEPENDENCY_LIST})
1303 #########################################################################
1305 # PACKAGING CATEGORIZATION #
1307 # * On Windows, when building a package (win32 installer), the #
1308 # install shield wizard proposes you to select which component #
1310 # * Each component to install has a short description following its #
1311 # name to understand its role. #
1312 # * This section deals with the categorization and the description #
1313 # of the component in this installer. #
1315 #########################################################################
1317 # WINDOWS INSTALLER CATEGORIZATION
1318 if(${EXTENSION_NAME_CMAKE}_CEP_NAME)
1319 if (${EXTENSION_NAME_CMAKE}_CEP_NAME MATCHES
"SDK")
1320 # The
default SDK extensions are categorized as
"required" and are not
"unselectable" by the user at installation time
1321 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1322 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1323 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
1329 # Extension is selectable for installation in the wizard of the installer
1330 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1331 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1332 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
1333 GROUP ${${EXTENSION_NAME_CMAKE}_CEP_NAME}
1337 # Extension if not categorized for packaging presentation
1338 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1339 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
1340 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
1346 #########################################################################
1350 # * CAMITK_TRANSLATIONS contains the list of language to translate #
1353 # * Create the translate.pro file which contains 4 sections: #
1354 # - HEADERS: list of .h/.hpp files to look for tr("") QString#
1355 # - SOURCES: list of .cpp files to look for tr("") QString #
1356 # - FORMS: list of .ui files to look for tr("") QString #
1357 # - TRANSLATIONS: list of .ts files which use CAMITK_TRANSLATIONS #
1358 # to define each .ts file #
1360 # * Execute lupdate program to update the .ts files with new QString #
1363 # * Execute lrelease program to create .qm files (binary equivalent of#
1366 # * Create translate.qrc which contains the list of .qm files. #
1367 # * Create the flags.qrc file which contains the list of .png flags #
1370 #########################################################################
1371 if(${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE)
1372 if(${EXTENSION_NAME} STREQUAL
"application")
1374 EXTRA_LANGUAGE ${${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE}
1377 camitk_translate(EXTRA_LANGUAGE ${${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE})
1380 if(${EXTENSION_NAME} STREQUAL
"application")
1389 #########################################################################
1391 # CTEST - COMPONENT TESTS DESCRIPTION #
1393 #########################################################################
1394 if( ${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
1396 set( CAMITK_EXTENSIONS_TESTS_LEVEL ${CAMITK_EXTENSIONS_TESTS_LEVEL}
"|- style=\"background-color: #CCCCCC\" \\n || '''${TYPE_EXTENSION} ${EXTENSION_NAME}''' \\n" CACHE INTERNAL
"")
1398 # Retrieve the current directory name to properly name the test
1401 # Test should pass because application test runs with no arguments - shows
usage and exit success
1402 camitk_add_test( TEST_SUFFIX ${COMP_DIR_NAME} PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1403 # Retrieve the files in testdata directory - a test will be applied
for each of these files
1406 # Different the test level to proceed
1410 set( TESTLEVEL ${LEVEL3} )
1412 # According options defined in Cmakelist enable or disable some tests
1413 set(TEST_DESCRIPTION
"Test opening the component, saving it as a file and compare the saved file with the original one.")
1414 if( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL1 )
1416 set(TEST_DESCRIPTION
"Run camitk-config.")
1417 elseif( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL2 )
1418 set( TESTLEVEL ${LEVEL1} )
1419 set(TEST_DESCRIPTION
"Test opening the component.")
1420 elseif( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL3 )
1421 set( TESTLEVEL ${LEVEL2} )
1422 set(TEST_DESCRIPTION
"Test opening the component and saving it as a file.")
1425 set( LEVELORIGIN ${TESTLEVEL} )#store the test level value in a
const variable
1427 foreach( COMPONENT_TESTDATA_FILE ${TESTFILES} )
1428 # Give the file name (full path cut)
1431 # Test procedure: Open an extension and a component(level1) - save
it(level2) - Compare saved file to original file(level3)
1432 if( ${TESTLEVEL} EQUAL ${LEVEL3} )
1434 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}${CAMITK_DEBUG_POSTFIX}.dll -l ${TESTLEVEL}" PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1436 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.dylib -l ${TESTLEVEL}" PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1438 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.so -l ${TESTLEVEL}" PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1441 MATH(EXPR TESTLEVEL
"${TESTLEVEL}-1")
#Decrease the test level to proceed less arduous tests
1443 # Test procedure: Open an extension and a component(level1) - save it(level2)
1444 while( ${TESTLEVEL} GREATER 0)
1446 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}${CAMITK_DEBUG_POSTFIX}.dll -l ${TESTLEVEL}" TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1448 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.dylib -l ${TESTLEVEL}" TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1450 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE} -c ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s/lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.so -l ${TESTLEVEL}" TEST_SUFFIX ${COMP_DIR_NAME}_LEVEL${TESTLEVEL}_ PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1453 MATH(EXPR TESTLEVEL
"${TESTLEVEL}-1")
#Decrease the test level to proceed less arduous tests
1455 set( TESTLEVEL ${LEVELORIGIN} )
1458 #########################################################################
1460 # CTEST - ACTION TESTS DESCRIPTION #
1462 #########################################################################
1463 elseif( ${EXTENSION_NAME_CMAKE}_ACTION_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
1465 set( CAMITK_EXTENSIONS_TESTS_LEVEL ${CAMITK_EXTENSIONS_TESTS_LEVEL}
"|- style=\"background-color: #CCCCCC\" \\n || '''${TYPE_EXTENSION} ${EXTENSION_NAME}''' \\n" CACHE INTERNAL
"")
1467 # Retrieve the current directory name to properly name the test
1470 # Test should pass because application test runs with no arguments - shows
usage and exit success
1471 camitk_add_test( TEST_SUFFIX ${COMP_DIR_NAME} PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1473 #
get the names of actions .dlls in lib directory
1476 foreach( ACTION_TESTDATA_FILE ${${EXTENSION_NAME_CMAKE}_TEST_FILES} )
1477 message( STATUS
"Action extension: " ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}
" Test file: " ${ACTION_TESTDATA_FILE} )
1479 if( NOT ( ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME} MATCHES
"application" ) )
#We do not apply tests on actions like (close, save, save as)
1480 # Test procedure: Open a file - load an action extension - Apply an action on the component wrapping the file
1482 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}${CAMITK_DEBUG_POSTFIX}.dll" TEST_SUFFIX ${COMP_DIR_NAME} PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1484 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.dylib" TEST_SUFFIX ${COMP_DIR_NAME} PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1486 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.so" TEST_SUFFIX ${COMP_DIR_NAME} PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
1488 camitk_parse_test_add(NAME ${CAMITK_TEST_NAME} LEVEL 3 DESCRIPTION
"Open a file, load the action and apply it on the component.")
1492 endif()
# endif(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE})
1496 # Old macro to configure a
new action to the framework
1498 # TODO CAMITK_DEPRECATED. This macro is marked as deprecated. It is to be removed in CamiTK 4.0
1499 action_extension(){)
1500 message(WARNING
"Deprecated macro action_extension detected : please use camitk_extension(ACTION_EXTENSION ...) instead.")
1504 # Old macro to configure a
new component to the framework
1506 # TODO CAMITK_DEPRECATED. This macro is marked as deprecated. It is to be removed in CamiTK 4.0
1507 component_extension(){)
1508 message(WARNING
"Deprecated macro component_extension detected : please use camitk_extension(COMPONENT_EXTENSION ...) instead.")
1512 # TODO write a viewer_extension macro in CamiTK
A pseudo-namespace used to group CMake macros and functions.
camitk_parse_test_add()
macro camitk_parse_test_add adds an extension (action or component) automatic test level information ...
Definition: CamiTKParseTestAdd.h:18
OUTFILE execute_process(COMMAND ${CMAKE_COMMAND}-E remove-f ${CAMITK_TEST_COMMAND_OUTPUT_FILE}) set(CAMITK_TEST_COMMAND_ARG"$
Definition: CamiTKTestCompareFile.h:15
string name
Definition: select.cpp:111
camitk_translate()
macro camitk_translate allows to perform the translation of any project (action, component, application and libraries) in several languages.
Definition: CamiTKTranslate.h:22
camitk_extension()
Macro camitk_extension simplifies writing a camitk extension (component, action)
Definition: CamiTKExtension.h:77
get_directory_name()
macro get_directory_name set the variable VariableName to the name of the last directory of FullPathD...
Definition: GetDirectoryName.h:14
Definition: Action.cpp:40
string output
Definition: pml2csv.cpp:111
export_headers()
export_headers is a macro that install header files at build and install time
Definition: ExportHeaders.h:40
camitk_init_test()
camitk_init_test is a macro to initialize a group of test (for the same command) It is used to initia...
Definition: CamiTKInitTest.h:37
parse_arguments()
macro parse_arguments is a fork from CMakeMacroParseArguments see http://www.cmake.org/Wiki/CMakeMacroParseArguments for more information
Definition: ParseArguments.h:13
set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) set(CAMITK_TEST_COMMAND_RESULT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestPassFile.h:11
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
camitk_sub_project_add()
macro camitk_sub_project_add adds a subproject definition from targets and its dependencies (if any) ...
Definition: CamiTKSubProjectAdd.h:17
map< unsigned int, unsigned int >::iterator it
Definition: pml2wrl.cpp:50
StructureProperties::GeometricType type
Definition: ansys2pml.cpp:40
static void include(QRect &r, const QRect &rect)
Definition: canvas_typed/qtcanvas.cpp:98
camitk_add_test()
camitk_add_test is a macro to add a new test to the CTest infrastructure It encapsulates CMake add_te...
Definition: CamiTKAddTest.h:47
get_subdirectoryfiles()
macro get_subdirectoryfiles get the names of all the files (and not directories) contained in a defin...
Definition: GetSubdirectoryFiles.h:20
const char * usage
Definition: programarg.h:80