如何判断变量的来源?

时间:2019-07-15 06:27:56

标签: cmake cmake-language

我有一个带有CMakeLists.txt的目录。并调用其他位置的CMake模块module1.cmake文件。

module1.cmake将引用名为XXX的变量,该变量可能来自:

  1. 环境变量%XXX%
  2. 通过cmake -D XXX=的命令行
  3. XXX在调用目录的CMakeLists.txtset()中定义。
  4. 以及先前配置的构建文件夹中的CACHE条目

然后module1.cmake将变量XXX存储到CACHE中。

module1.cmake文件中,我需要告诉XXX的来源,因为我需要对它们进行区别对待。

对于1,我可以检查$ENV{XXX}的值。

对于4,我正在考虑使用get_property(cached_XXX CACHE XXX PROPERTY VALUE)并检查cached_XXX的值。但是事实证明,-D XXX=选项总是更新CACHE条目。因此,我无法确定cached_XXX的值是来自旧的CACHE还是来自当前的-D选项。

那么,毕竟我该如何区分 2、3和4

0 个答案:

没有答案