CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
ctkMacroParseArguments.cmake
Go to the documentation of this file.
1
2#!
3#! See http://www.cmake.org/Wiki/CMakeMacroParseArguments
4#!
5#! \ingroup CMakeUtilities
6macro(CtkMacroParseArguments prefix arg_names option_names)
7 set(DEFAULT_ARGS)
8 foreach(arg_name ${arg_names})
9 set(${prefix}_${arg_name})
10 endforeach()
11 foreach(option ${option_names})
12 set(${prefix}_${option} FALSE)
13 endforeach()
14
15 set(current_arg_name DEFAULT_ARGS)
16 set(current_arg_list)
17 foreach(arg ${ARGN})
18 set(larg_names ${arg_names})
19 list(FIND larg_names "${arg}" is_arg_name)
20 IF (is_arg_name GREATER -1)
21 set(${prefix}_${current_arg_name} ${current_arg_list})
22 set(current_arg_name ${arg})
23 set(current_arg_list)
24 ELSE (is_arg_name GREATER -1)
25 set(loption_names ${option_names})
26 list(FIND loption_names "${arg}" is_option)
27 IF (is_option GREATER -1)
28 set(${prefix}_${arg} TRUE)
29 ELSE (is_option GREATER -1)
30 set(current_arg_list ${current_arg_list} ${arg})
31 ENDIF (is_option GREATER -1)
32 ENDIF (is_arg_name GREATER -1)
33 endforeach()
34 set(${prefix}_${current_arg_name} ${current_arg_list})
35endmacro()