diff --git a/Source/cmMacroCommand.h b/Source/cmMacroCommand.h index f0df9c460..01396c319 100644 --- a/Source/cmMacroCommand.h +++ b/Source/cmMacroCommand.h @@ -97,12 +97,19 @@ public: "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 variable ARGC which will be set to the number of arguments " - "passed into the function as well as ARGV0 ARGV1 ARGV2 ... which " + "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 argument pass the last expected argument."; + "${ARGV} holds the list of all arguments given to the macro and " + "${ARGN} " + "holds the list of argument pass 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 you should look at " + "the function command."; } cmTypeMacro(cmMacroCommand, cmCommand);