diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-06-26 17:28:49 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-06-26 17:28:49 +0200 |
commit | a6a3c416c77d383f00a723ceb4545e89a2334923 (patch) | |
tree | 4f99cde816967947bf4cd5dc3d631aa04df50202 /cmake/vala/ParseArguments.cmake | |
download | eva-a6a3c416c77d383f00a723ceb4545e89a2334923.tar eva-a6a3c416c77d383f00a723ceb4545e89a2334923.zip |
Put together cmake build
Diffstat (limited to 'cmake/vala/ParseArguments.cmake')
-rw-r--r-- | cmake/vala/ParseArguments.cmake | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/cmake/vala/ParseArguments.cmake b/cmake/vala/ParseArguments.cmake new file mode 100644 index 0000000..717c0f5 --- /dev/null +++ b/cmake/vala/ParseArguments.cmake @@ -0,0 +1,36 @@ +## +# This is a helper Macro to parse optional arguments in Macros/Functions +# It has been taken from the public CMake wiki. +# See http://www.cmake.org/Wiki/CMakeMacroParseArguments for documentation and +# licensing. +## +macro(parse_arguments prefix arg_names option_names) + set(DEFAULT_ARGS) + foreach(arg_name ${arg_names}) + set(${prefix}_${arg_name}) + endforeach(arg_name) + foreach(option ${option_names}) + set(${prefix}_${option} FALSE) + endforeach(option) + + set(current_arg_name DEFAULT_ARGS) + set(current_arg_list) + foreach(arg ${ARGN}) + set(larg_names ${arg_names}) + list(FIND larg_names "${arg}" is_arg_name) + if(is_arg_name GREATER -1) + set(${prefix}_${current_arg_name} ${current_arg_list}) + set(current_arg_name ${arg}) + set(current_arg_list) + else(is_arg_name GREATER -1) + set(loption_names ${option_names}) + list(FIND loption_names "${arg}" is_option) + if(is_option GREATER -1) + set(${prefix}_${arg} TRUE) + else(is_option GREATER -1) + set(current_arg_list ${current_arg_list} ${arg}) + endif(is_option GREATER -1) + endif(is_arg_name GREATER -1) + endforeach(arg) + set(${prefix}_${current_arg_name} ${current_arg_list}) +endmacro(parse_arguments) |