| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- variable_watch
- --------------
- Watch the CMake variable for change.
- .. code-block:: cmake
- variable_watch(<variable> [<command>])
- If the specified ``<variable>`` changes and no ``<command>`` is given,
- a message will be printed to inform about the change.
- 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.
|