3 #! See http://www.cmake.org/Wiki/CMakeMacroParseArguments
5 #! \ingroup CMakeUtilities
6 macro(CtkMacroParseArguments prefix arg_names option_names)
8 foreach(arg_name ${arg_names})
9 set(${prefix}_${arg_name})
11 foreach(option ${option_names})
12 set(${prefix}_${option} FALSE)
15 set(current_arg_name DEFAULT_ARGS)
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})
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)
34 set(${prefix}_${current_arg_name} ${current_arg_list})