From: Lang Hames Date: Thu, 17 Aug 2017 18:21:53 +0000 (+0000) Subject: [docs] Tweak phrasing of the varargs explanation in the command section of the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=35adac2ab6b6648425ee68e2c08c4a38a7f298b1;p=llvm [docs] Tweak phrasing of the varargs explanation in the command section of the CMake primer. This moves the introduction of the ARGV/ARGN variables up to immmediately follow the introduction of the concept of variable argument functions, and explicitly connects this concept to C varargs functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311113 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/CMakePrimer.rst b/docs/CMakePrimer.rst index 14e8a273690..7f9bc727965 100644 --- a/docs/CMakePrimer.rst +++ b/docs/CMakePrimer.rst @@ -333,10 +333,13 @@ When defining a CMake command handling arguments is very useful. The examples in this section will all use the CMake ``function`` block, but this all applies to the ``macro`` block as well. -CMake commands can have named arguments, but all commands are implicitly -variable argument. If the command has named arguments they are required and must -be specified at every call site. Below is a trivial example of providing a -wrapper function for CMake's built in function ``add_dependencies``. +CMake commands can have named arguments that are requried at every call site. In +addition, all commands will implicitly accept a variable number of extra +arguments (In C parlance, all commands are varargs functions). When a command is +invoked with extra arguments (beyond the named ones) CMake will store the extra +arguments in a list named ``ARGV``, and the count of the extra arguments in +``ARGN``. Below is a trivial example of providing a wrapper function for CMake's +built in function ``add_dependencies``. .. code-block:: cmake @@ -346,8 +349,7 @@ wrapper function for CMake's built in function ``add_dependencies``. This example defines a new macro named ``add_deps`` which takes a required first argument, and just calls another function passing through the first argument and -all trailing arguments. When variable arguments are present CMake defines them -in a list named ``ARGV``, and the count of the arguments is defined in ``ARGN``. +all trailing arguments. CMake provides a module ``CMakeParseArguments`` which provides an implementation of advanced argument parsing. We use this all over LLVM, and it is recommended