Кешированные переменные CMakeCache
Обычные переменные пересоздаются каждый раз при запуске cmake
есть возможность хранить и использовать переменные из файла CmakeCache.txt
этот файл создается однажды и может быть удален только вручную (система сборки его не уничтожает)
Присвоить/Изменить значение кешированной переменной
set(varName value CACHE type “What is it” [FORCE])
“What is it” – строка описание (документация)
FORCE – опциональный параметр (разрешить перезаписывать переменные)
type variants:
BOOL ON/OFF or TRUE/FALSE or 1/0
FILEPATH path to file
PATH path to directory
STRING
INTERNAL only for internal using
Пример: set(varName TRUE CACHE BOOL “bool variable”)
Примечание:
BOOL можно задать 2 способами
option(varName “bool variable” TRUE)
Получить значение переменной
${varName}
Обычные переменные имеют приоритет перед кешированными (проверять что нет совпадающих имен)
Но при записи в кеш обычная переменная перезаписывается т.е. при первом запуске (или использовании FORCE) м.б. отличная реакция от последующих.