Index: cmake/modules/AddLLVM.cmake =================================================================== --- cmake/modules/AddLLVM.cmake +++ cmake/modules/AddLLVM.cmake @@ -1,4 +1,3 @@ -include(LLVMParseArguments) include(LLVMProcessSources) include(LLVM-Config) @@ -845,7 +844,7 @@ # A raw function to create a lit target. This is used to implement the testuite # management functions. function(add_lit_target target comment) - parse_arguments(ARG "PARAMS;DEPENDS;ARGS" "" ${ARGN}) + cmake_parse_arguments(ARG "" "" "PARAMS;DEPENDS;ARGS" ${ARGN}) set(LIT_ARGS "${ARG_ARGS} ${LLVM_LIT_ARGS}") separate_arguments(LIT_ARGS) if (NOT CMAKE_CFG_INTDIR STREQUAL ".") @@ -860,9 +859,9 @@ foreach(param ${ARG_PARAMS}) list(APPEND LIT_COMMAND --param ${param}) endforeach() - if (ARG_DEFAULT_ARGS) + if (ARG_UNPARSED_ARGUMENTS) add_custom_target(${target} - COMMAND ${LIT_COMMAND} ${ARG_DEFAULT_ARGS} + COMMAND ${LIT_COMMAND} ${ARG_UNPARSED_ARGUMENTS} COMMENT "${comment}" ${cmake_3_2_USES_TERMINAL} ) @@ -881,12 +880,12 @@ # A function to add a set of lit test suites to be driven through 'check-*' targets. function(add_lit_testsuite target comment) - parse_arguments(ARG "PARAMS;DEPENDS;ARGS" "" ${ARGN}) + cmake_parse_arguments(ARG "" "" "PARAMS;DEPENDS;ARGS" ${ARGN}) # EXCLUDE_FROM_ALL excludes the test ${target} out of check-all. if(NOT EXCLUDE_FROM_ALL) # Register the testsuites, params and depends for the global check rule. - set_property(GLOBAL APPEND PROPERTY LLVM_LIT_TESTSUITES ${ARG_DEFAULT_ARGS}) + set_property(GLOBAL APPEND PROPERTY LLVM_LIT_TESTSUITES ${ARG_UNPARSED_ARGUMENTS}) set_property(GLOBAL APPEND PROPERTY LLVM_LIT_PARAMS ${ARG_PARAMS}) set_property(GLOBAL APPEND PROPERTY LLVM_LIT_DEPENDS ${ARG_DEPENDS}) set_property(GLOBAL APPEND PROPERTY LLVM_LIT_EXTRA_ARGS ${ARG_ARGS}) @@ -894,7 +893,7 @@ # Produce a specific suffixed check rule. add_lit_target(${target} ${comment} - ${ARG_DEFAULT_ARGS} + ${ARG_UNPARSED_ARGUMENTS} PARAMS ${ARG_PARAMS} DEPENDS ${ARG_DEPENDS} ARGS ${ARG_ARGS} @@ -903,7 +902,7 @@ function(add_lit_testsuites project directory) if (NOT CMAKE_CONFIGURATION_TYPES) - parse_arguments(ARG "PARAMS;DEPENDS;ARGS" "" ${ARGN}) + cmake_parse_arguments(ARG "" "" "PARAMS;DEPENDS;ARGS" ${ARGN}) file(GLOB_RECURSE litCfg ${directory}/lit*.cfg) set(lit_suites) foreach(f ${litCfg}) Index: cmake/modules/LLVMParseArguments.cmake =================================================================== --- cmake/modules/LLVMParseArguments.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# Copied from http://www.itk.org/Wiki/CMakeMacroParseArguments under -# http://creativecommons.org/licenses/by/2.5/. -# -# The PARSE_ARGUMENTS macro will take the arguments of another macro and define -# several variables. The first argument to PARSE_ARGUMENTS is a prefix to put on -# all variables it creates. The second argument is a list of names, and the -# third argument is a list of options. Both of these lists should be quoted. The -# rest of PARSE_ARGUMENTS are arguments from another macro to be parsed. -# -# PARSE_ARGUMENTS(prefix arg_names options arg1 arg2...) -# -# For each item in options, PARSE_ARGUMENTS will create a variable with that -# name, prefixed with prefix_. So, for example, if prefix is MY_MACRO and -# options is OPTION1;OPTION2, then PARSE_ARGUMENTS will create the variables -# MY_MACRO_OPTION1 and MY_MACRO_OPTION2. These variables will be set to true if -# the option exists in the command line or false otherwise. -# -#For each item in arg_names, PARSE_ARGUMENTS will create a variable with that -#name, prefixed with prefix_. Each variable will be filled with the arguments -#that occur after the given arg_name is encountered up to the next arg_name or -#the end of the arguments. All options are removed from these -#lists. PARSE_ARGUMENTS also creates a prefix_DEFAULT_ARGS variable containing -#the list of all arguments up to the first arg_name encountered. -# -#Here is a simple, albeit impractical, example of using PARSE_ARGUMENTS that -#demonstrates its behavior. -# -# SET(arguments -# hello OPTION3 world -# LIST3 foo bar -# OPTION2 -# LIST1 fuz baz -# ) -# -# PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "OPTION1;OPTION2;OPTION3" ${arguments}) -# -# PARSE_ARGUMENTS creates 7 variables and sets them as follows: -# ARG_DEFAULT_ARGS: hello;world -# ARG_LIST1: fuz;baz -# ARG_LIST2: -# ARG_LIST3: foo;bar -# ARG_OPTION1: FALSE -# ARG_OPTION2: TRUE -# ARG_OPTION3: TRUE -# -# If you don't have any options, use an empty string in its place. -# PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "" ${arguments}) -# Likewise if you have no lists. -# PARSE_ARGUMENTS(ARG "" "OPTION1;OPTION2;OPTION3" ${arguments}) - -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)