局部变量

set(my_variable "the value is a string")

默认情况下,只在当前目录中定义局部变量,并通过 add_subdirectory 命令添加任何子目录。

要扩展变量的范围,有两种可能性:

  1. CACHE it,这将使其全局可用

  2. 使用 PARENT_SCOPE,这将使其在父范围内可用。父作用域是父目录中的 CMakeLists.txt 文件或当前函数的调用者。

    从技术上讲,父目录将是通过 add_subdirectory 命令包含当前文件的 CMakeLists.txt 文件。