Как определить, откуда берется переменная?
У меня есть каталог с CMakeLists.txt
, И это вызывает модуль CMake module1.cmake
файл находится в другом месте.
module1.cmake
будет ссылаться на переменную с именем XXX
, который может исходить от:
- переменная среды
%XXX%
, - командная строка через
cmake -D XXX=
XXX
определенные в вызывающем каталогеCMakeLists.txt
черезset()
,- и запись CACHE в ранее настроенной папке сборки
затем module1.cmake
будет хранить переменную XXX
в тайник
в module1.cmake
файл, мне нужно сказать, где XXX
это потому, что мне нужно относиться к ним по-разному.
Для 1, я могу проверить значение $ENV{XXX}
,
Для 4 я думал об использовании get_property(cached_XXX CACHE XXX PROPERTY VALUE)
и проверьте значение cached_XXX
, Но получается -D XXX=
опция всегда обновляет запись CACHE. Так что я не могу сказать, если cached_XXX
значение из старого кэша или из текущего -D
вариант.
В конце концов, как я могу сказать, что между 2, 3 и 4?