~elementary-pantheon/contractor/master

« back to all changes in this revision

Viewing changes to cmake/ParseArguments.cmake

  • Committer: Cody Garver
  • Author(s): Matt Harris
  • Date: 2018-05-24 21:16:56 UTC
  • Revision ID: git-v1:fe6f23e1d24ba1b63c76e504af8e16bb31012c97
Switch to Meson (#25)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
##
2
 
# This is a helper Macro to parse optional arguments in Macros/Functions
3
 
# It has been taken from the public CMake wiki.  
4
 
# See http://www.cmake.org/Wiki/CMakeMacroParseArguments for documentation and
5
 
# licensing.
6
 
##
7
 
macro(parse_arguments prefix arg_names option_names)
8
 
  set(DEFAULT_ARGS)
9
 
  foreach(arg_name ${arg_names})
10
 
    set(${prefix}_${arg_name})
11
 
  endforeach(arg_name)
12
 
  foreach(option ${option_names})
13
 
    set(${prefix}_${option} FALSE)
14
 
  endforeach(option)
15
 
 
16
 
  set(current_arg_name DEFAULT_ARGS)
17
 
  set(current_arg_list)
18
 
  foreach(arg ${ARGN})
19
 
    set(larg_names ${arg_names})
20
 
    list(FIND larg_names "${arg}" is_arg_name)
21
 
    if(is_arg_name GREATER -1)
22
 
      set(${prefix}_${current_arg_name} ${current_arg_list})
23
 
      set(current_arg_name ${arg})
24
 
      set(current_arg_list)
25
 
    else(is_arg_name GREATER -1)
26
 
      set(loption_names ${option_names})
27
 
      list(FIND loption_names "${arg}" is_option)
28
 
      if(is_option GREATER -1)
29
 
            set(${prefix}_${arg} TRUE)
30
 
      else(is_option GREATER -1)
31
 
            set(current_arg_list ${current_arg_list} ${arg})
32
 
      endif(is_option GREATER -1)
33
 
    endif(is_arg_name GREATER -1)
34
 
  endforeach(arg)
35
 
  set(${prefix}_${current_arg_name} ${current_arg_list})
36
 
endmacro(parse_arguments)