diff options
| author | nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com> | 2021-07-20 12:24:58 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-20 10:24:58 -0700 |
| commit | 0e1dc121856eef84bf1852134e548bf9898dabac (patch) | |
| tree | 4bbae150d61121c81c33a2f4b7b92063e4db3060 /scripts/cmake/z_vcpkg_function_arguments.cmake | |
| parent | b67fab9861239e33b722b9a44f5c96dec6ca807e (diff) | |
| download | vcpkg-0e1dc121856eef84bf1852134e548bf9898dabac.tar.gz vcpkg-0e1dc121856eef84bf1852134e548bf9898dabac.zip | |
[rollup] Rollup PR 2021-07-16 (#19001)
* [rollup:2021-07-16 1/7] PR #18201 (@JackBoosY)
[vcpkg-cmake] Add check for unused cmake variables
* [rollup:2021-07-16 2/7] PR #18397 (@strega-nil)
[vcpkg_list] add new function
* [rollup:2021-07-16 3/7] PR #18782 (@strega-nil)
[scripts-audit] vcpkg_build_ninja
* [rollup:2021-07-16 4/7] PR #18784 (@strega-nil)
[scripts-audit] vcpkg_minimum_required
* [rollup:2021-07-16 5/7] PR #18785 (@strega-nil)
[scripts-audit] vcpkg_replace_string
* [rollup:2021-07-16 6/7] PR #18786 (@strega-nil)
[scripts-audit] windows scripts
* [rollup:2021-07-16 7/7] PR #18945 (@strega-nil)
[many ports] remove deprecated vcpkg_check_features call [1/5]
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
Diffstat (limited to 'scripts/cmake/z_vcpkg_function_arguments.cmake')
| -rw-r--r-- | scripts/cmake/z_vcpkg_function_arguments.cmake | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/scripts/cmake/z_vcpkg_function_arguments.cmake b/scripts/cmake/z_vcpkg_function_arguments.cmake index 2c5b694ed..043c86191 100644 --- a/scripts/cmake/z_vcpkg_function_arguments.cmake +++ b/scripts/cmake/z_vcpkg_function_arguments.cmake @@ -32,22 +32,32 @@ macro(z_vcpkg_function_arguments OUT_VAR) set(z_vcpkg_function_arguments_FIRST_ARG 0) elseif("${ARGC}" EQUAL 2) set(z_vcpkg_function_arguments_FIRST_ARG "${ARGV1}") + + if(NOT z_vcpkg_function_arguments_FIRST_ARG GREATER_EQUAL "0" AND NOT z_vcpkg_function_arguments_FIRST_ARG LESS "0") + message(FATAL_ERROR "z_vcpkg_function_arguments: index (${z_vcpkg_function_arguments_FIRST_ARG}) is not a number") + elseif(z_vcpkg_function_arguments_FIRST_ARG LESS "0" OR z_vcpkg_function_arguments_FIRST_ARG GREATER ARGC) + message(FATAL_ERROR "z_vcpkg_function_arguments: index (${z_vcpkg_function_arguments_FIRST_ARG}) out of range") + endif() else() # vcpkg bug message(FATAL_ERROR "z_vcpkg_function_arguments: invalid arguments (${ARGV})") endif() - set("${OUT_VAR}") + set("${OUT_VAR}" "") # this allows us to get the value of the enclosing function's ARGC set(z_vcpkg_function_arguments_ARGC_NAME "ARGC") set(z_vcpkg_function_arguments_ARGC "${${z_vcpkg_function_arguments_ARGC_NAME}}") math(EXPR z_vcpkg_function_arguments_LAST_ARG "${z_vcpkg_function_arguments_ARGC} - 1") - if(z_vcpkg_function_arguments_LAST_ARG GREATER_EQUAL z_vcpkg_function_arguments_FIRST_ARG) + # GREATER_EQUAL added in CMake 3.7 + if(NOT z_vcpkg_function_arguments_LAST_ARG LESS z_vcpkg_function_arguments_FIRST_ARG) foreach(z_vcpkg_function_arguments_N RANGE "${z_vcpkg_function_arguments_FIRST_ARG}" "${z_vcpkg_function_arguments_LAST_ARG}") string(REPLACE ";" "\\;" z_vcpkg_function_arguments_ESCAPED_ARG "${ARGV${z_vcpkg_function_arguments_N}}") - list(APPEND "${OUT_VAR}" "${z_vcpkg_function_arguments_ESCAPED_ARG}") + # adds an extra ";" on the front + set("${OUT_VAR}" "${${OUT_VAR}};${z_vcpkg_function_arguments_ESCAPED_ARG}") endforeach() + # and then removes that extra semicolon + string(SUBSTRING "${${OUT_VAR}}" 1 -1 "${OUT_VAR}") endif() endmacro() |
