diff options
author | Brad King <brad.king@kitware.com> | 2020-07-10 10:46:42 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-07-10 10:47:20 (GMT) |
commit | 95db8c5db5fbe7d3f94014a73df206e2a7398a94 (patch) | |
tree | 536b0cee011679400105b2053470cbc767f1abd8 /Help | |
parent | 9e2d480a3fb5a83f9e44ea833217388c40a055bf (diff) | |
parent | bb156638585fac300c0b2fe04c721144d93415ef (diff) | |
download | CMake-95db8c5db5fbe7d3f94014a73df206e2a7398a94.zip CMake-95db8c5db5fbe7d3f94014a73df206e2a7398a94.tar.gz CMake-95db8c5db5fbe7d3f94014a73df206e2a7398a94.tar.bz2 |
Merge topic 'variable_watch_docs'
bb15663858 Help: Expand documentation of variable_watch()
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4990
Diffstat (limited to 'Help')
-rw-r--r-- | Help/command/variable_watch.rst | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/Help/command/variable_watch.rst b/Help/command/variable_watch.rst index ce69bcf..8293f5a 100644 --- a/Help/command/variable_watch.rst +++ b/Help/command/variable_watch.rst @@ -7,9 +7,42 @@ Watch the CMake variable for change. variable_watch(<variable> [<command>]) -If the specified ``<variable>`` changes, a message will be printed -to inform about the change. +If the specified ``<variable>`` changes and no ``<command>`` is given, +a message will be printed to inform about the change. -Additionally, if ``<command>`` is given, this command will be executed. +If ``<command>`` is given, this command will be executed instead. The command will receive the following arguments: ``COMMAND(<variable> <access> <value> <current_list_file> <stack>)`` + +``<variable>`` + Name of the variable being accessed. + +``<access>`` + One of ``READ_ACCESS``, ``UNKNOWN_READ_ACCESS``, ``MODIFIED_ACCESS``, + ``UNKNOWN_MODIFIED_ACCESS``, or ``REMOVED_ACCESS``. The ``UNKNOWN_`` + values are only used when the variable has never been set. Once set, + they are never used again during the same CMake run, even if the + variable is later unset. + +``<value>`` + The value of the variable. On a modification, this is the new + (modified) value of the variable. On removal, the value is empty. + +``<current_list_file>`` + Full path to the file doing the access. + +``<stack>`` + List of absolute paths of all files currently on the stack of file + inclusion, with the bottom-most file first and the currently + processed file (that is, ``current_list_file``) last. + +Note that for some accesses such as :command:`list(APPEND)`, the watcher +is executed twice, first with a read access and then with a write one. +Also note that an :command:`if(DEFINED)` query on the variable does not +register as an access and the watcher is not executed. + +Only non-cache variables can be watched using this command. Access to +cache variables is never watched. However, the existence of a cache +variable ``var`` causes accesses to the non-cache variable ``var`` to +not use the ``UNKNOWN_`` prefix, even if a non-cache variable ``var`` +has never existed. |