我有一个带有CMakeLists.txt
的目录。并调用其他位置的CMake模块module1.cmake
文件。
module1.cmake
将引用名为XXX
的变量,该变量可能来自:
%XXX%
。cmake -D XXX=
的命令行XXX
在调用目录的CMakeLists.txt
至set()
中定义。然后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 ?