变量_手表

观察 CMake 变量的变化。

variable_watch(<variable> [<command>])

如果指定的 <variable> 发生变化并且没有给出 <command>,将打印一条消息以通知更改。

如果给出了``<command>``,则将执行此命令。该命令将接收以下参数:COMMAND(<variable> <access> <value> <current_list_file> <stack>)

<变量>

正在访问的变量的名称。

<访问>

READ_ACCESSUNKNOWN_READ_ACCESSMODIFIED_ACCESSUNKNOWN_MODIFIED_ACCESSREMOVED_ACCESS 之一。 UNKNOWN_ 值仅在从未设置变量时使用。一旦设置,它们就不会在同一次 CMake 运行期间再次使用,即使稍后取消设置变量也是如此。

<值>

变量的值。在修改时,这是变量的新(修改)值。删除时,该值为空。

<current_list_file>

进行访问的文件的完整路径。

<堆栈>

当前在文件包含堆栈中的所有文件的绝对路径列表,最底部的文件在前,当前处理的文件(即“current_list_file”)在后。

请注意,对于某些访问,例如 list(APPEND),观察程序会执行两次,第一次是读访问,然后是写访问。另请注意,对变量的 if(DEFINED) 查询不会注册为访问,也不会执行观察程序。

使用此命令只能监视非缓存变量。从不监视对缓存变量的访问。然而,缓存变量“var”的存在导致访问非缓存变量“var”时不使用“UNKNOWN_”前缀,即使非缓存变量“var”具有从未存在过。