diff options
author | Kitware Robot <kwrobot@kitware.com> | 2013-10-15 15:17:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-15 18:12:03 (GMT) |
commit | f051814ed0e63badbfd68049354f36259dbf4b49 (patch) | |
tree | f4e6f885f86c882d723a7dd53d2b702d0c7fdffb /Help/command/macro.rst | |
parent | e94958e99c4dec26c86ce8b76d744c04ba960675 (diff) | |
download | CMake-f051814ed0e63badbfd68049354f36259dbf4b49.zip CMake-f051814ed0e63badbfd68049354f36259dbf4b49.tar.gz CMake-f051814ed0e63badbfd68049354f36259dbf4b49.tar.bz2 |
Convert builtin help to reStructuredText source files
Run the convert-help.bash script to convert documentation:
./convert-help.bash "/path/to/CMake-build/bin"
Then remove it.
Diffstat (limited to 'Help/command/macro.rst')
-rw-r--r-- | Help/command/macro.rst | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Help/command/macro.rst b/Help/command/macro.rst new file mode 100644 index 0000000..aa16352 --- /dev/null +++ b/Help/command/macro.rst @@ -0,0 +1,33 @@ +macro +----- + +Start recording a macro for later invocation as a command. + +:: + + macro(<name> [arg1 [arg2 [arg3 ...]]]) + COMMAND1(ARGS ...) + COMMAND2(ARGS ...) + ... + endmacro(<name>) + +Define a macro named <name> that takes arguments named arg1 arg2 arg3 +(...). Commands listed after macro, but before the matching endmacro, +are not invoked until the macro is invoked. When it is invoked, the +commands recorded in the macro are first modified by replacing formal +parameters (${arg1}) with the arguments passed, and then invoked as +normal commands. In addition to referencing the formal parameters you +can reference the values ${ARGC} which will be set to the number of +arguments passed into the function as well as ${ARGV0} ${ARGV1} +${ARGV2} ... which will have the actual values of the arguments +passed in. This facilitates creating macros with optional arguments. +Additionally ${ARGV} holds the list of all arguments given to the +macro and ${ARGN} holds the list of arguments past the last expected +argument. Note that the parameters to a macro and values such as ARGN +are not variables in the usual CMake sense. They are string +replacements much like the C preprocessor would do with a macro. If +you want true CMake variables and/or better CMake scope control you +should look at the function command. + +See the cmake_policy() command documentation for the behavior of +policies inside macros. |