CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkMacroParseArguments.cmake
Go to the documentation of this file.
1 
2 #!
3 #! See http://www.cmake.org/Wiki/CMakeMacroParseArguments
4 #!
5 #! \ingroup CMakeUtilities
6 macro(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})
35 endmacro()