2
# Set PARSE_ARGUMENTS_DUMP_OUTPUT_ENABLED to TRUE to see output from parsing.
4
FUNCTION(PARSE_ARGUMENTS_DUMP_OUTPUT)
5
IF (PARSE_ARGUMENTS_DUMP_OUTPUT_ENABLED)
11
# Parse a set of input arguments into different lists
14
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
16
PARSE_ARGUMENTS_DUMP_OUTPUT("PARSE_ARGUMENTS: prefix='${prefix}'")
17
PARSE_ARGUMENTS_DUMP_OUTPUT("PARSE_ARGUMENTS: arg_names='${arg_names}'")
18
PARSE_ARGUMENTS_DUMP_OUTPUT("PARSE_ARGUMENTS: option_names='${option_names}'")
19
PARSE_ARGUMENTS_DUMP_OUTPUT("PARSE_ARGUMENTS: ARGN='${ARGN}'")
22
FOREACH(arg_name ${arg_names})
23
SET(${prefix}_${arg_name})
25
FOREACH(option ${option_names})
26
SET(${prefix}_${option} FALSE)
29
SET(current_arg_name DEFAULT_ARGS)
33
SET(larg_names ${arg_names})
34
LIST(FIND larg_names "${arg}" is_arg_name)
35
IF (is_arg_name GREATER -1)
36
SET(${prefix}_${current_arg_name} "${current_arg_list}")
37
PARSE_ARGUMENTS_DUMP_OUTPUT("PARSE_ARGUMENTS:"
38
" ${prefix}_${current_arg_name} = '${${prefix}_${current_arg_name}}'" )
39
SET(current_arg_name "${arg}")
42
SET(loption_names "${option_names}")
43
LIST(FIND loption_names "${arg}" is_option)
44
IF (is_option GREATER -1)
45
SET(${prefix}_${arg} TRUE)
46
PARSE_ARGUMENTS_DUMP_OUTPUT( "PARSE_ARGUMENTS:"
47
" ${prefix}_${arg} = '${${prefix}_${arg}}'" )
49
LIST(APPEND current_arg_list "${arg}")
54
SET(${prefix}_${current_arg_name} "${current_arg_list}")
56
ENDMACRO(PARSE_ARGUMENTS)