变量_手表¶
观察 CMake 变量的变化。
variable_watch(<variable> [<command>])
如果指定的 <variable> 发生变化并且没有给出 <command>,将打印一条消息以通知更改。
如果给出了``<command>``,则将执行此命令。该命令将接收以下参数:COMMAND(<variable> <access> <value> <current_list_file> <stack>)
<变量>正在访问的变量的名称。
<访问>READ_ACCESS、UNKNOWN_READ_ACCESS、MODIFIED_ACCESS、UNKNOWN_MODIFIED_ACCESS或REMOVED_ACCESS之一。UNKNOWN_值仅在从未设置变量时使用。一旦设置,它们就不会在同一次 CMake 运行期间再次使用,即使稍后取消设置变量也是如此。<值>变量的值。在修改时,这是变量的新(修改)值。删除时,该值为空。
<current_list_file>进行访问的文件的完整路径。
<堆栈>当前在文件包含堆栈中的所有文件的绝对路径列表,最底部的文件在前,当前处理的文件(即“current_list_file”)在后。
请注意,对于某些访问,例如 list(APPEND),观察程序会执行两次,第一次是读访问,然后是写访问。另请注意,对变量的 if(DEFINED) 查询不会注册为访问,也不会执行观察程序。
使用此命令只能监视非缓存变量。从不监视对缓存变量的访问。然而,缓存变量“var”的存在导致访问非缓存变量“var”时不使用“UNKNOWN_”前缀,即使非缓存变量“var”具有从未存在过。