2 changed files with 47 additions and 0 deletions
@ -0,0 +1,46 @@
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. |
||||
# |
||||
# This program is free software; you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation; version 2 of the License. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program; if not, write to the Free Software |
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
||||
|
||||
# Handy macro to parse macro arguments |
||||
MACRO(MYSQL_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() |
Loading…
Reference in new issue