我有一个目录CMakeLists.txt
。它调用module1.cmake
位于其他地方的 CMake 模块文件。
module1.cmake
将引用一个名为 的变量XXX
,该变量可能来自:
- 环境变量
%XXX%
。 - 命令行通过
cmake -D XXX=
XXX
在调用目录的CMakeLists.txt
through中定义set()
。- 以及之前配置的构建文件夹中的 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?