/
SlicerMacroSimpleTest.cmake
48 lines (38 loc) · 1.46 KB
/
SlicerMacroSimpleTest.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! Usage:
#! \code
#! SIMPLE_TEST(<testname> [argument1 ...])
#! \endcode
#!
#! This macro add a test using the complete add_test signature specifying target using
#! $<TARGET_FILE:...> generator expression. Optionnal test argument(s) can be passed
#! after specifying the <testname>.
#!
#! Variable named KIT (or CLP or EXTENSION_NAME) is expected to be defined in the current scope.
#! KIT (or CLP or EXTENSION_NAME) variable usually matches the value of PROJECT_NAME.
#!
#! The macro also associates a label to the test based on the current value of KIT (or CLP or EXTENSION_NAME).
#!
#! \sa http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_test
#! \sa http://www.cmake.org/cmake/help/cmake-2-8-docs.html#variable:PROJECT_NAME
#!
#! \ingroup CMakeUtilities
macro(SIMPLE_TEST testname)
if("${KIT}" STREQUAL "")
set(KIT ${CLP})
endif()
if("${KIT}" STREQUAL "")
set(KIT ${EXTENSION_NAME})
endif()
if("${KIT}" STREQUAL "")
message(FATAL_ERROR "error: KIT or CLP or EXTENSION_NAME variable is not set !")
endif()
if("${Slicer_LAUNCH_COMMAND}" STREQUAL "")
message(FATAL_ERROR "error: Slicer_LAUNCH_COMMAND variable is not set !")
endif()
if(NOT TARGET ${KIT}CxxTests)
message(FATAL_ERROR "error: Target '${KIT}CxxTests' is not defined !")
endif()
add_test(NAME ${testname}
COMMAND ${Slicer_LAUNCH_COMMAND} $<TARGET_FILE:${KIT}CxxTests> ${testname} ${ARGN})
set_property(TEST ${testname} PROPERTY LABELS ${KIT})
endmacro()