1 # possible values : ACTION_EXTENSION or COMPONENT_EXTENSION. 78 # Instruct
CMake to run moc automatically when needed.
83 ######################################################################### 87 # * Use a macro to create the CMAKE variables according to the # 88 # provided options as input. # 90 ######################################################################### 95 "NEEDS_TOOLNEEDS_CEP_LIBRARIESNEEDS_COMPONENT_EXTENSIONNEEDS_ACTION_EXTENSIONINCLUDE_DIRECTORIESEXTERNAL_LIBRARIESHEADERS_TO_INSTALLDEFINESCXX_FLAGSEXTERNAL_SOURCESTARGET_NAMECEP_NAMEDESCRIPTIONTEST_APPLICATIONEXTRA_TRANSLATE_LANGUAGETEST_FILES" # possible lists
96 "NEEDS_QT_MODULESACTION_EXTENSIONCOMPONENT_EXTENSIONDISABLEDNEEDS_XERCESCNEEDS_ITKNEEDS_LIBXML2NEEDS_XSDNEEDS_QTXMLNEEDS_OPENCVNEEDS_IGSTKINSTALL_ALL_HEADERSNEEDS_GDCMDISABLE_TESTLEVEL1DISABLE_TESTLEVEL2DISABLE_TESTLEVEL3" # possible options
102 #########################################################################
104 # CREATE CMAKE VARIABLES #
106 # * Create required and useful
CMake variables
for the macro #
108 #########################################################################
110 # TYPE EXTENSION : ACTION or COMPONENT
111 if (${EXTENSION_NAME_CMAKE}_ACTION_EXTENSION)
112 set(TYPE_EXTENSION
"action")
113 string(TOUPPER ${TYPE_EXTENSION} TYPE_EXTENSION_CMAKE)
114 elseif(${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION)
115 set(TYPE_EXTENSION
"component")
116 string(TOUPPER ${TYPE_EXTENSION} TYPE_EXTENSION_CMAKE)
119 # CMAKE CACHE VARIABLE 120 # if it is the first cmake run, create the extension variable with a correct initial value 121 if(NOT ${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_INTERNAL)
122 # add option to enable/disable
this extension and
set it to
true by
default 123 # Building the extension can be disabled by giving the argument DISABLED to the macro
124 # or by passing the flag -D${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_DISABLED:BOOL=TRUE
125 if(${EXTENSION_NAME_CMAKE}_DISABLED)
126 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED FALSE)
128 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED TRUE)
130 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE} ${${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_ENABLED} CACHE BOOL
"Build extension ${EXTENSION_NAME}")
131 set(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}_INTERNAL TRUE CACHE INTERNAL
"Is variable ${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME} already created?")
134 # if this extension is enabled, do everything needed 135 # otherwise... do nothing 136 if (${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE})
139 # The target name is composed of the following: [action / component]-name
140 # * action / component is the type of extension as prefix
141 # * name is deduced from the input folder containing the calling CMakeLists.txt file of the extension.
142 if (${EXTENSION_NAME_CMAKE}_TARGET_NAME)
143 set(${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME ${${EXTENSION_NAME_CMAKE}_TARGET_NAME})
145 set(${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME ${EXTENSION_NAME})
147 # replace "-" by "_" if the extension is being packaged with NSIS, the program to create a Windows installer. 149 # NSIS requires that cpack component names do not feature space or "-" characters 150 set(${TYPE_EXTENSION_CMAKE}_TARGET_NAME ${TYPE_EXTENSION}_${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME})
152 set(${TYPE_EXTENSION_CMAKE}_TARGET_NAME ${TYPE_EXTENSION}-${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME})
155 message(STATUS
"Building extension ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
159 ######################################################################### 161 # INCLUDE DIRECTORIES # 163 # * Include basic directories where to look header files # 164 # * Include also additional user provided directories # 165 # * These directories are used for compilation step # 167 ######################################################################### 170 include_directories(${CAMITK_INCLUDE_DIRECTORIES})
171 include_directories(${CMAKE_CURRENT_BINARY_DIR})
172 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
174 # USER INPUT DIRECTORIES
175 include_directories(${${EXTENSION_NAME_CMAKE}_INCLUDE_DIRECTORIES})
179 #########################################################################
181 # GATHER RESSOURCES #
183 # * Get all the headers (.h) and source files (.cpp) of the project #
184 # * Create the needed Qt files (using moc and uic) # 185 # * On Windows, Visual Studio, group .moc and .ui files # 186 # in subdirectories # 188 ######################################################################### 190 # get all headers, sources and do what is needed for Qt 191 # one need to do this just before the add_library so that all defines, include directories and link directories 192 # are set properly (gather_headers_and_sources include the call to Qt moc and uic) 197 #########################################################################
199 # ADDITIONAL KNOWN EXTERNAL LIBRARY DEPENDENCIES #
201 # * Look
for specific library needed #
202 # * Specific libraries are specified as option with the #
203 # NEEDS_LIBRARY syntax (see macro syntax
for more options)
# 204 # * Backward compatibility : Warn user if using old NEEDS_TOOL syntax # 206 ######################################################################### 209 set(ITK_LIBRARIES
"")
210 if(${EXTENSION_NAME_CMAKE}_NEEDS_ITK)
211 find_package(ITK REQUIRED PATHS /usr/lib/InsightToolkit)
214 set(ITK_VERSION ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}) #ITK_VERSION is not always
set 215 set(CAMITK_ITK_VERSION ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR})
216 message(STATUS
"${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}: Found ITK version ${ITK_VERSION}")
218 if ((${ITK_VERSION} VERSION_GREATER
"4") AND (${ITK_VERSION} VERSION_LESS
"5")) # ITK 4.9 on Windows, maybe a lesser version
for Linux.
220 set(ITK_DIR ${ITK_DIR}/../..)
221 # Construct list of ITK libraries
for linking = CAMITK_ITK_LIBRARIES
222 foreach(ITK_LIBRARY ${ITK_LIBRARIES})
223 string(SUBSTRING ${ITK_LIBRARY} 0 3 ${ITK_LIBRARY}_PREFIX)
224 # Some libraries have not the expected
'itk' prefix. Add it then
225 if((NOT ${${ITK_LIBRARY}_PREFIX} STREQUAL
"itk") AND (NOT ${${ITK_LIBRARY}_PREFIX} STREQUAL
"ITK"))
226 set(ITK_LIBRARY
itk${ITK_LIBRARY})
228 set(CAMITK_ITK_LIBRARIES ${CAMITK_ITK_LIBRARIES} debug ${ITK_DIR}/${ITK_LIBRARY}-${CAMITK_ITK_VERSION}${CAMITK_DEBUG_POSTFIX}.lib optimized ${ITK_DIR}/${ITK_LIBRARY}-${CAMITK_ITK_VERSION}.lib)
231 set(CAMITK_ITK_LIBRARIES ${ITK_LIBRARIES})
233 message(WARNING
"CamiTKExtension.cmake: ITK LIBRARY NOT SET FOR APPLE")
236 message(FATAL_ERROR
"Wrong version of ITK : ${ITK_VERSION}. Required is at least 4.x to 4.9")
239 message(FATAL_ERROR
"ITK not found but required for ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}")
244 set(LIBXML2_LIBRARY
"")
245 if(${EXTENSION_NAME_CMAKE}_NEEDS_LIBXML2)
246 # LibXml2 is required
249 add_definitions(${LIBXML2_DEFINITIONS})
250 include_directories(${LIBXML2_INCLUDE_DIR})
251 set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
253 # most probably win32 or crosscompiling 254 message(STATUS
"${EXTENSION_NAME}: libxml2 required")
259 set(OpenCV_LIBRARIES
"")
260 if(${EXTENSION_NAME_CMAKE}_NEEDS_OPENCV)
262 find_package( OpenCV REQUIRED )
264 set(OpenCV_LIBRARIES
"")
268 set(IGSTK_LIBRARIES
"")
269 if(${EXTENSION_NAME_CMAKE}_NEEDS_IGSTK)
270 find_package(IGSTK REQUIRED)
273 set(IGSTK_LIBRARIES
"")
277 set(XERCESC_LIBRARIES)
278 if(${EXTENSION_NAME_CMAKE}_NEEDS_XERCESC)
279 # XercesC is required
280 find_package(XercesC REQUIRED)
282 include_directories(${XERCESC_INCLUDE_DIR})
283 set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
285 # most probably win32 or crosscompiling 286 message(FATAL_ERROR
"${EXTENSION_NAME}: xerces-c required. Please provide Xerces-C path.")
291 if(${EXTENSION_NAME_CMAKE}_NEEDS_XSD)
292 # XercesC is required
293 find_package(XercesC REQUIRED)
295 include_directories(${XERCESC_INCLUDE_DIR})
296 set(XERCESC_LIBRARIES ${XERCESC_LIBRARY})
297 find_package(XSD REQUIRED)
298 include_directories(${XSD_INCLUDE_DIR})
300 # most probably win32 or crosscompiling 301 message(FATAL_ERROR
"${EXTENSION_NAME}: xerces-c required because of XSD cxx, please set XERCESC_INCLUDE_DIR")
307 if(${EXTENSION_NAME_CMAKE}_NEEDS_GDCM)
309 # Look for GDCM library only if not found (for instance, ITK has already search for it) 310 # Calling find_package(GDCM ..) more than once creates CMake errors. 311 find_package(GDCM 2.0 REQUIRED)
317 debug ${GDCM_DIR}/../gdcmcharls${CAMITK_DEBUG_POSTFIX}.lib
318 debug ${GDCM_DIR}/../gdcmCommon${CAMITK_DEBUG_POSTFIX}.lib
319 debug ${GDCM_DIR}/../gdcmDICT${CAMITK_DEBUG_POSTFIX}.lib
320 debug ${GDCM_DIR}/../gdcmDSED${CAMITK_DEBUG_POSTFIX}.lib
321 debug ${GDCM_DIR}/../gdcmexpat${CAMITK_DEBUG_POSTFIX}.lib
322 debug ${GDCM_DIR}/../gdcmgetopt${CAMITK_DEBUG_POSTFIX}.lib
323 debug ${GDCM_DIR}/../gdcmIOD${CAMITK_DEBUG_POSTFIX}.lib
324 debug ${GDCM_DIR}/../gdcmjpeg8${CAMITK_DEBUG_POSTFIX}.lib
325 debug ${GDCM_DIR}/../gdcmjpeg12${CAMITK_DEBUG_POSTFIX}.lib
326 debug ${GDCM_DIR}/../gdcmjpeg16${CAMITK_DEBUG_POSTFIX}.lib
327 debug ${GDCM_DIR}/../gdcmMEXD${CAMITK_DEBUG_POSTFIX}.lib
328 debug ${GDCM_DIR}/../gdcmMSFF${CAMITK_DEBUG_POSTFIX}.lib
329 debug ${GDCM_DIR}/../gdcmopenjpeg${CAMITK_DEBUG_POSTFIX}.lib
330 debug ${GDCM_DIR}/../gdcmzlib${CAMITK_DEBUG_POSTFIX}.lib
331 debug ${GDCM_DIR}/../socketxx${CAMITK_DEBUG_POSTFIX}.lib
332 debug ${GDCM_DIR}/../vtkgdcm${CAMITK_DEBUG_POSTFIX}.lib
333 debug ${GDCM_DIR}/../gdcmDSED${CAMITK_DEBUG_POSTFIX}.lib
334 optimized gdcmcharls gdcmCommon gdcmDICT gdcmDSED gdcmexpat
335 optimized gdcmgetopt gdcmIOD gdcmjpeg8 gdcmjpeg12 gdcmjpeg16
336 optimized gdcmMEXD gdcmMSFF gdcmopenjpeg gdcmzlib socketxx vtkgdcm
340 set(GDCM_LIBRARIES gdcmCommon gdcmDICT gdcmDSED gdcmMEXD gdcmMSFF vtkgdcm)
343 message(ERROR
"${EXTENSION_NAME}: GDCM 2.x library required. Please install GDCM.")
348 set(EXTERNAL_LIBRARIES)
349 if(${EXTENSION_NAME_CMAKE}_EXTERNAL_LIBRARIES)
350 foreach(EXTERNAL_LIBRARY ${${EXTENSION_NAME_CMAKE}_EXTERNAL_LIBRARIES})
352 set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES}
353 debug ${EXTERNAL_LIBRARY}${CAMITK_DEBUG_POSTFIX}.lib
354 optimized ${EXTERNAL_LIBRARY}
357 set(EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} ${EXTERNAL_LIBRARY})
362 # BACKWARD COMPATIBILITY 364 # TODO CAMITK_DEPRECATED. This option is marked as deprecated. It is to be removed in CamiTK 4.0 365 if(${EXTENSION_NAME_CMAKE}_NEEDS_TOOL)
366 message(WARNING
"Warning: ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt: camitk_extension macro option NEEDS_TOOL is deprecated, please use NEEDS_CEP_LIBRARIES instead..")
367 set(${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES ${${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES} ${${EXTENSION_NAME_CMAKE}_NEEDS_TOOL})
372 ######################################################################### 376 # * Link directories are used to indicate the compiler where # 377 # to look for folder containing libraries to link with. # 378 # * Must be done BEFORE creating the CMake target with add_library # 380 ######################################################################### 382 # CAMITK BASIC LIB DIRECTORIES 383 link_directories(${CAMITK_LINK_DIRECTORIES})
387 #########################################################################
389 # TARGET COMPILATION DEFINITION #
391 # * Additional sources files to consider at compilation (.cpp)
# 392 # * CMake project target definition # 394 ######################################################################### 396 set(${EXTENSION_NAME_CMAKE}_SOURCES ${${EXTENSION_NAME_CMAKE}_SOURCES} ${${EXTENSION_NAME_CMAKE}_EXTERNAL_SOURCES})
398 # CMAKE TARGET DEFINITION
399 add_library(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} SHARED ${${EXTENSION_NAME_CMAKE}_SOURCES})
403 #########################################################################
405 # QT LINKING LIBRARIES #
407 # * Set at linking the Qt5 libraries #
409 #########################################################################
410 qt5_use_modules(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} ${CAMITK_QT_COMPONENTS})
414 #########################################################################
416 # CAMITK ACTION / COMPONENT / LIBRARIES DEPENDENCIES #
418 # * Look
for action / component / libraries dependencies #
419 # * Specific actions / components / libraries are specified as option #
420 # with the NEEDS_ACTION/COMPONENT_EXTENSION/CEP_LIBRARIES syntax #
421 # * Add dependencies to library-camitkcore and the testing #
422 # action/component
if test are runned on it #
424 #########################################################################
426 # 1st CAMITKCORE LIBRARY DEPENDENCY
427 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} ${CAMITK_CORE_TARGET_LIB_NAME})
428 # add the dependency to the core automoc target
429 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS ${CAMITK_CORE_TARGET_LIB_NAME})
431 # 2nd COMPONENTS DEPENDENCIES
432 if(${EXTENSION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION)
433 set(COMPONENTS_DEPENDENCY_LIST
"")
#use for generating the project.xml file 434 foreach(COMPONENT_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_COMPONENT_EXTENSION})
435 #
include directories from build,
camitk (local or global install).
436 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
437 include_directories(${CAMITK_INCLUDE_DIR}/components/${COMPONENT_NEEDED})
440 set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES}
441 debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/components/${COMPONENT_NEEDED}${CAMITK_DEBUG_POSTFIX}.lib
442 optimized ${COMPONENT_NEEDED}
445 set(COMPONENT_EXTENSION_LIBRARIES ${COMPONENT_EXTENSION_LIBRARIES} ${COMPONENT_NEEDED})
447 # CMake / CDash dependencies 449 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} component_${COMPONENT_NEEDED})
450 # add the dependency to the component automoc target
451 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS component_${COMPONENT_NEEDED})
453 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} component-${COMPONENT_NEEDED})
454 set(COMPONENTS_DEPENDENCY_LIST ${COMPONENTS_DEPENDENCY_LIST} component-${COMPONENT_NEEDED})
455 # add the dependency to the component automoc target
456 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS component-${COMPONENT_NEEDED})
461 # 3rd ACTIONS DEPENDENCIES 462 if(${EXTENSION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION)
463 set(ACTIONS_DEPENDENCY_LIST
"") #use
for generating the project.xml file
464 foreach(ACTION_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_ACTION_EXTENSION})
465 #
include directories from build,
camitk (local or global install).
466 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/actions/${ACTION_NEEDED})
467 include_directories(${CAMITK_INCLUDE_DIR}/actions/${ACTION_NEEDED})
470 set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES}
471 debug ${CAMITK_BUILD_PRIVATE_LIB_DIR}/actions/${ACTION_NEEDED}${CAMITK_DEBUG_POSTFIX}.lib
472 optimized ${ACTION_NEEDED}
475 set(ACTION_EXTENSION_LIBRARIES ${ACTION_EXTENSION_LIBRARIES} ${ACTION_NEEDED})
477 # CMake / CDash dependencies 479 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} action_${ACTION_NEEDED})
480 # add the dependency to the action automoc target
481 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS action_${ACTION_NEEDED})
483 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} action-${ACTION_NEEDED})
484 set(ACTIONS_DEPENDENCY_LIST ${ACTIONS_DEPENDENCY_LIST} action-${ACTION_NEEDED})
485 # add the dependency to the action automoc target
486 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS action-${ACTION_NEEDED})
491 # 4th CEP LIBRARIES DEPENDENCIES 492 if(${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES)
493 set(CEP_LIBRARIES_DEPENDENCY_LIST
"") #use
for generating the project.xml file
494 foreach(CEP_LIBRARY_NEEDED ${${EXTENSION_NAME_CMAKE}_NEEDS_CEP_LIBRARIES})
495 #
include directories from build,
camitk (local or global install).
496 include_directories(${CAMITK_BUILD_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
497 include_directories(${CAMITK_INCLUDE_DIR}/libraries/${CEP_LIBRARY_NEEDED})
500 set(CEP_LIBRARIES ${CEP_LIBRARIES} debug ${CEP_LIBRARY_NEEDED}${CAMITK_DEBUG_POSTFIX}.lib
501 optimized ${CEP_LIBRARY_NEEDED}
505 set(CEP_LIBRARIES ${CEP_LIBRARIES} ${CEP_LIBRARY_NEEDED})
507 set(CEP_LIBRARIES ${CEP_LIBRARIES} ${CEP_LIBRARY_NEEDED})
510 # CMake / CDash dependencies 512 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} library_${CEP_LIBRARY_NEEDED})
513 # add the dependency to the library automoc target
514 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS library_${CEP_LIBRARY_NEEDED})
516 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} library-${CEP_LIBRARY_NEEDED})
517 set(CEP_LIBRARIES_DEPENDENCY_LIST ${CEP_LIBRARIES_DEPENDENCY_LIST} library-${CEP_LIBRARY_NEEDED})
518 # add the dependency to the library automoc target
519 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS library-${CEP_LIBRARY_NEEDED})
524 # 5th DEPENDENCY ON TESTING APPLICATION 525 # Those projects are used to run unitarian test on ACTION / COMPONENT extensions. 526 set(APPLICATIONS_DEPENDENCY_LIST
"")
527 if(${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
528 # Add
this dependencies
for automatically constructing application-testactions components dependencies
529 add_dependencies(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} application-test${TYPE_EXTENSION}s)
530 set(APPLICATIONS_DEPENDENCY_LIST
"application-test${TYPE_EXTENSION}s")
531 # add the dependency to the test application automoc target 532 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS application-test${TYPE_EXTENSION}s)
535 if((CEP_NAME STREQUAL
"SDK") OR (CEP_NAME STREQUAL
"modeling") OR (CEP_NAME STREQUAL
"imaging"))
536 # 6th TEST-COMPONENT APPLICATION DEPENDENCY ON THIS COMPONENT 537 if(${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
538 add_dependencies(application-testactions ${COMPONENT_TARGET_NAME})
539 # add
this component automoc target to the dependency of the test application
540 set_property(TARGET application-testactions APPEND PROPERTY AUTOGEN_TARGET_DEPENDS ${COMPONENT_TARGET_NAME})
543 # 7th TEST-ACTION APPLICATION DEPENDENCY ON ACTION-APPLICATION 544 if(${TYPE_EXTENSION_CMAKE}_TARGET_NAME STREQUAL
"action-application")
545 add_dependencies(application-testcomponents action-application)
546 # add this component automoc target to the dependency of the test application 547 set_property(TARGET application-testcomponents APPEND PROPERTY AUTOGEN_TARGET_DEPENDS action-application)
552 ######################################################################### 556 # * Flags are options to give to the compiler # 557 # * Add user input flags # 558 # * Add platform specific flags # 560 ######################################################################### 562 # USER INPUT DEFINES COMPILER FLAG 563 if(${EXTENSION_NAME_CMAKE}_DEFINES)
564 foreach (FLAG ${${EXTENSION_NAME_CMAKE}_DEFINES})
565 add_definitions(-D${FLAG})
569 # USER INPUT CUSTOM COMPILER FLAG 570 if(${EXTENSION_NAME_CMAKE}_CXX_FLAGS)
571 foreach (FLAG ${${EXTENSION_NAME_CMAKE}_CXX_FLAGS})
572 set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} ${FLAG}")
576 # PLATFORM SPECIFIC COMPILER FLAG 577 # 64bits and other platform with relocation needs -fPIC 579 check_cxx_accepts_flag(-fPIC FPIC_FLAG_ACCEPTED)
580 # no need to add -fPIC on mingw, otherwise it generates a warning: -fPIC ignored for target (all code is position independent) [enabled by default] 581 # msvc is also accepting the flag, but then produce warning D9002 : ignoring unknown option '-fPIC' cl 582 if(FPIC_FLAG_ACCEPTED AND NOT WIN32)
583 set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} APPEND PROPERTY COMPILE_FLAGS -fPIC)
588 ######################################################################### 592 # * Linking is the last stage of compilation # 593 # * Indicate what libraries to use for linking the target # 595 ######################################################################### 597 # Any component or action has to be linked with ${CAMITK_CORE_LIBRARIES} and with all its dependencies 598 target_link_libraries(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} ${CAMITK_CORE_LIBRARIES} ${CAMITK_LIBRARIES} ${COMPONENT_EXTENSION_LIBRARIES} ${ACTION_EXTENSION_LIBRARIES} ${CEP_LIBRARIES} ${CAMITK_ITK_LIBRARIES} ${LIBXML2_LIBRARY} ${OpenCV_LIBRARIES} ${IGSTK_LIBRARIES} ${XERCESC_LIBRARIES} ${GDCM_LIBRARIES} ${EXTERNAL_LIBRARIES})
602 #########################################################################
606 # * Define the output directory (location and name)
# 607 # * Define the output name of the library # 608 # * Add ${CAMITK_DEBUG_POSTFIX} suffix to Debug MSVC built libraries # 609 # * Additional Linux .so files information # 611 ######################################################################### 613 # OUTPUT LIBRARY NAME 614 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
615 PROPERTIES OUTPUT_NAME ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}
618 # OUTPUT DIRECTORY LOCATION AND NAME
619 # Output directory (all extensions are
private)
620 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
621 LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
622 LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
624 # Output directory (
for dll plateform,
this is still the same, extensions are
private)
625 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
626 RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
627 RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
629 # Output directory (
for dll plateform,
this is still the same, extensions are
private)
630 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
631 ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
632 ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CAMITK_BUILD_PRIVATE_LIB_DIR}/${TYPE_EXTENSION}s
635 # OUTPUT LIBRARY NAME MSVC in DEBUG mode
637 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES DEBUG_POSTFIX ${CAMITK_DEBUG_POSTFIX})
640 # ADDITIONAL LINUX .so FILE INFORMATION 641 set(${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES ${${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES}
642 VERSION
"${CAMITK_VERSION_MAJOR}.${CAMITK_VERSION_MINOR}.${CAMITK_VERSION_PATCH}" 643 SOVERSION
"${CAMITK_VERSION_MAJOR}" 645 #
set the library specific info (SONAME...)
646 set_target_properties(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTIES ${${TYPE_EXTENSION_CMAKE}_LIBRARY_PROPERTIES} LINK_INTERFACE_LIBRARIES
"")
649 # target properties (outputname and
remove soname)
650 # set_property(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} PROPERTY NO_SONAME 1) 651 # in CEP the version patch might not have been set 652 if (NOT CAMITK_VERSION_PATCH)
653 set(CAMITK_VERSION_PATCH 0)
658 ######################################################################### 662 # * When installing the project, header files (.h) and test data are # 663 # copied into a installation folder to determine. # 664 # * Indicate in this section, where to install your project and which # 665 # files to copy into that folder (during local/global installation) # 667 ######################################################################### 669 # FOLDER INSTALLATION 670 # Indicate where to install the action/component 671 install(TARGETS ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
672 # TODO always use private lib, even for runtime 673 RUNTIME DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
674 LIBRARY DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
675 ARCHIVE DESTINATION lib/${CAMITK_SHORT_VERSION_STRING}/${TYPE_EXTENSION}s
676 COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
679 # HEADERS INSTALLATION
680 # Build target to install provided headers to install (with HEADERS_TO_INSTALL option)
681 if(${EXTENSION_NAME_CMAKE}_HEADERS_TO_INSTALL)
682 export_headers(${${EXTENSION_NAME_CMAKE}_HEADERS_TO_INSTALL} COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} GROUP ${TYPE_EXTENSION}s)
685 # Build target to install all header files(with INSTALL_ALL_HEADERS option) 686 if(${EXTENSION_NAME_CMAKE}_INSTALL_ALL_HEADERS)
687 export_headers(${${EXTENSION_NAME_CMAKE}_HEADERS} COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} GROUP ${TYPE_EXTENSION}s)
690 # TESTDATA INSTALLATION 691 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/testdata)
692 # Check test data dir directory
693 if (NOT EXISTS ${CAMITK_BUILD_TESTDATA_DIR})
694 make_directory( ${CAMITK_BUILD_TESTDATA_DIR} )
697 # copy the files to test data directory 698 execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory testdata ${CAMITK_BUILD_TESTDATA_DIR}
699 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
702 # during installation, copy the files to install directory
703 set (TESTDATA_DEST_DIR share/${CAMITK_SHORT_VERSION_STRING}/testdata)
704 install(DIRECTORY testdata/
705 #DESTINATION share/testdata
706 #DESTINATION share/${CAMITK_SHORT_VERSION_STRING}/testdata
707 DESTINATION ${TESTDATA_DEST_DIR}
708 # COMPONENT ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} 709 PATTERN
".svn" EXCLUDE
714 # CTESTDATA INSTALLATION 715 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/testdata/ctestdata)
716 # Check test data dir directory
717 if (NOT EXISTS ${CAMITK_BUILD_CTESTDATA_DIR})
718 add_custom_command(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
720 COMMAND ${CMAKE_COMMAND} -E make_directory ${CAMITK_BUILD_CTESTDATA_DIR}
721 COMMENT
"Creating build-time share directory for test data ${CAMITK_BUILD_CTESTDATA_DIR}" 726 # At build time, copy the files to test data directory 727 add_custom_command(TARGET ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
729 COMMAND ${CMAKE_COMMAND} -E copy_directory testdata/ctestdata ${CAMITK_BUILD_CTESTDATA_DIR}
730 COMMENT
"Installing build-time test data for ${EXTENSION_NAME}" 731 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
735 # during installation, copy the files to install directory
736 set (CTESTDATA_DEST_DIR share/${CAMITK_SHORT_VERSION_STRING}/testdata/ctestdata)
737 install(DIRECTORY testdata/ctestdata
738 DESTINATION ${CTESTDATA_DEST_DIR}
739 PATTERN
".svn" EXCLUDE
746 ######################################################################### 748 # CDASH SUBPROJECT DESCRIPTION # 750 # * Update the XML description of the subprojects dependencies # 753 ######################################################################### 754 # CDASH XML SUBPROJECTS DESCRIPTION UPDATE 755 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})
759 #########################################################################
761 # PACKAGING CATEGORIZATION #
763 # * On Windows, when building a package (win32 installer), the #
764 # install shield wizard proposes you to select which component # 766 # * Each component to install has a short description following its # 767 # name to understand its role. # 768 # * This section deals with the categorization and the description # 769 # of the component in this installer. # 771 ######################################################################### 773 # WINDOWS INSTALLER CATEGORIZATION 774 if(${EXTENSION_NAME_CMAKE}_CEP_NAME)
775 if (${EXTENSION_NAME_CMAKE}_CEP_NAME MATCHES
"SDK")
776 # The
default SDK extensions are categorized as
"required" and are not
"unselectable" by the user at installation time
777 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
778 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
779 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
785 # Extension is selectable for installation in the wizard of the installer 786 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
787 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
788 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
789 GROUP ${${EXTENSION_NAME_CMAKE}_CEP_NAME}
793 # Extension if not categorized for packaging presentation 794 cpack_add_component(${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
795 DISPLAY_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
796 DESCRIPTION ${${EXTENSION_NAME_CMAKE}_DESCRIPTION}
801 ##################################################################################### 805 # * CAMITK_TRANSLATIONS contains the list of language to translate # 808 # * Create the translate.pro file which contains 4 sections: # 809 # - HEADERS: list of .h/.hpp files to look for tr("") QString # 810 # - SOURCES: list of .cpp files to look for tr("") QString # 811 # - FORMS: list of .ui files to look for tr("") QString # 812 # - TRANSLATIONS: list of .ts files which use CAMITK_TRANSLATIONS # 813 # to define each .ts file # 815 # * Execute lupdate program to update the .ts files with new QString # 818 # * Execute lrelease program to create .qm files (binary equivalent of # 821 # * Create translate.qrc which contains the list of .qm files. # 822 # * Create the flags.qrc file which contains the list of .png flags # 825 ##################################################################################### 827 if(${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE)
828 if(${EXTENSION_NAME} STREQUAL
"application")
830 EXTRA_LANGUAGE ${${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE})
832 camitk_translate(EXTRA_LANGUAGE ${${EXTENSION_NAME_CMAKE}_EXTRA_TRANSLATE_LANGUAGE})
835 if(${EXTENSION_NAME} STREQUAL
"application")
845 ######################################################################### 847 # CTEST - COMPONENT TESTS DESCRIPTION # 849 ######################################################################### 850 if( ${EXTENSION_NAME_CMAKE}_COMPONENT_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
854 # Retrieve the current directory name to properly name the test
857 # Retrieve the files in testdata directory - a test will be applied
for each of these files
860 # Different the test level to proceed
865 set( TESTLEVEL ${LEVEL3} )
867 # 1st test should pass because application test runs with no arguments - shows
usage and exit success
869 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
871 camitk_parse_test_add(NAME ${CAMITK_TEST_NAME} LEVEL 0 DESCRIPTION
"Launch application testcomponent with no arguments.")
873 # According options defined in Cmakelist enable or disable some tests
874 set(TEST_DESCRIPTION
"Test opening the component, saving it as a file and compare the saved file with the original one.")
875 if( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL1 )
877 set(TEST_DESCRIPTION
"Run camitk-config." )
878 elseif( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL2 )
879 set( TESTLEVEL ${LEVEL1} )
880 set(TEST_DESCRIPTION
"Test opening the component.")
881 elseif( ${EXTENSION_NAME_CMAKE}_DISABLE_TESTLEVEL3 )
882 set( TESTLEVEL ${LEVEL2} )
883 set(TEST_DESCRIPTION
"Test opening the component and saving it as a file.")
886 set( LEVELORIGIN ${TESTLEVEL} ) #store the test level value in a
const variable
888 foreach( COMPONENT_TESTDATA_FILE ${TESTFILES} )
889 # Give the file name (full path cut)
892 # Test procedure: Open an extension and a component- save it - Compare saved file to original file(level3)
893 if( ${TESTLEVEL} EQUAL ${LEVEL3} )
895 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}" 896 PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE}
897 TEST_SUFFIX
"-LEVEL${TESTLEVEL}-" 898 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
901 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}" 902 PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE}
903 TEST_SUFFIX
"-LEVEL${TESTLEVEL}-" 904 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
907 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}" 908 PASS_FILE_OUTPUT ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${DATA_FILE}
909 TEST_SUFFIX
"-LEVEL${TESTLEVEL}-" 910 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
914 MATH(EXPR TESTLEVEL
"${TESTLEVEL}-1")
#Decrease the test level to proceed less arduous tests 917 # Test procedure: Open an extension and a component(level1) - save it(level2) 918 while( ${TESTLEVEL} GREATER 0)
920 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 [LEVEL${TESTLEVEL}]
921 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
924 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}" 925 TEST_SUFFIX
"-LEVEL${TESTLEVEL}-" 926 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
929 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}" 930 TEST_SUFFIX
"-LEVEL${TESTLEVEL}-" 931 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
935 MATH(EXPR TESTLEVEL
"${TESTLEVEL}-1")
# Decrease the test level to proceed less arduous tests 937 set( TESTLEVEL ${LEVELORIGIN} )
940 ######################################################################### 942 # CTEST - ACTION TESTS DESCRIPTION # 944 ######################################################################### 945 elseif( ${EXTENSION_NAME_CMAKE}_ACTION_EXTENSION AND ${EXTENSION_NAME_CMAKE}_TEST_APPLICATION AND NOT PACKAGING_NSIS)
949 # Retrieve the current directory name to properly name the test
952 # Test should pass because application test runs with no arguments - shows
usage and exit success
953 camitk_add_test( TEST_SUFFIX
"-LEVEL0-" PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME} )
954 camitk_parse_test_add(NAME ${CAMITK_TEST_NAME} LEVEL 0 DESCRIPTION
"Launch application testaction with no arguments.")
956 #
get the names of actions .dlls in lib directory
959 foreach( ACTION_TESTDATA_FILE ${${EXTENSION_NAME_CMAKE}_TEST_FILES} )
960 # Next line is only useful macro debug => comment from now
961 # message( STATUS
"Action extension: " ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}
" Test file: " ${ACTION_TESTDATA_FILE} )
963 if( NOT ( ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME} MATCHES
"application" ) )
# We do not apply tests on actions like (close, save, save as) 964 # Test procedure: Open a file - load an action extension - Apply an action on the component wrapping the file 966 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a ${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}${CAMITK_DEBUG_POSTFIX}.dll" 967 TEST_SUFFIX
"-LEVEL1-" 968 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
971 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.dylib" 972 TEST_SUFFIX
"-LEVEL1-" 973 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
976 camitk_add_test( EXECUTABLE_ARGS
"-i ${CAMITK_BUILD_TESTDATA_DIR}/ctestdata/${ACTION_TESTDATA_FILE} -a lib${${TYPE_EXTENSION_CMAKE}_OUTPUT_NAME}.so" 977 TEST_SUFFIX
"-LEVEL1-" 978 PROJECT_NAME ${${TYPE_EXTENSION_CMAKE}_TARGET_NAME}
981 camitk_parse_test_add(NAME ${CAMITK_TEST_NAME} LEVEL 1 DESCRIPTION
"Open a file, load the action and apply it on the component.")
985 endif()
# endif(${TYPE_EXTENSION_CMAKE}_${EXTENSION_NAME_CMAKE}) 989 # Old macro to configure a
new action to the framework
991 # TODO CAMITK_DEPRECATED. This macro is marked as deprecated. It is to be removed in CamiTK 4.0
993 message(WARNING
"Deprecated macro action_extension detected : please use camitk_extension(ACTION_EXTENSION ...) instead.")
997 # Old macro to configure a
new component to the framework
999 # TODO CAMITK_DEPRECATED. This macro is marked as deprecated. It is to be removed in CamiTK 4.0
1000 component_extension(){)
1001 message(WARNING
"Deprecated macro component_extension detected : please use camitk_extension(COMPONENT_EXTENSION ...) instead.")
1005 # TODO write a viewer_extension macro in CamiTK
A pseudo-namespace used to group CMake macros and functions.
Definition: itkImageToVTKImageFilter.h:39
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:51
get_directory_name()
macro get_directory_name set the variable VariableName to the name of the last directory of FullPathD...
Definition: GetDirectoryName.h:14
camitk_translate()
macro camitk_translate allows to perform the translation of any project (action, component, application and libraries) in several languages.
Definition: CamiTKTranslate.h:16
Definition: Action.cpp:40
test result execute_process(COMMAND ${CMAKE_COMMAND}-E remove-f ${CAMITK_TEST_COMMAND_FILE}${CAMITK_TEST_COMMAND_RESULT_FILE}${CAMITK_TEST_COMMAND_OUTPUT_FILE}${CAMITK_TEST_PASS_FILE_COMMAND_FILE}${CAMITK_TEST_PASS_FILE_OUTPUT_FILE}${CAMITK_TEST_PASS_FILE_RESULT_FILE}) file(WRITE $
Definition: CamiTKTestPassFile.h:19
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
camitk_parse_test_add_separator()
macro camitk_parse_test_add_separator adds an extension (action or component) separator entry...
Definition: CamiTKParseTestAddSeparator.h:16
parse_arguments()
macro parse_arguments is a fork from CMakeMacroParseArguments see http://www.cmake.org/Wiki/CMakeMacroParseArguments for more information
Definition: ParseArguments.h:13
camitk_parse_test_add()
macro camitk_parse_test_add adds an extension (action or component) automatic test level information ...
Definition: CamiTKParseTestAdd.h:18
camitk_extension()
Macro camitk_extension simplifies writing a camitk extension (component, action)
Definition: CamiTKExtension.h:75
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
void usage(char *appName)
Definition: applications/actionstatemachine/main.cpp:39
camitk_sub_project_add()
macro camitk_sub_project_add adds a subproject definition from targets and its dependencies (if any) ...
Definition: CamiTKSubProjectAdd.h:17
static void include(QRect &r, const QRect &rect)
Definition: canvas_typed/qtcanvas.cpp:98
get_subdirectoryfiles()
macro get_subdirectoryfiles get the names of all the files (and not directories) contained in a defin...
Definition: GetSubdirectoryFiles.h:20