Это то, для чего предопределенная цель CMake ZERO_CHECK
. Это цель регенерации системы сборки. Когда вы компилируете один из своих ранее существующих проектов CMake, цель ZERO_CHECK
всегда должна запускаться первой, чтобы проверить, изменились ли любые ваших файлов CMake с момента последней сборки. Если это так, CMake перезапустит и обновит систему сборки, используя ваши последние файлы CMake.
Вам просто нужно быть осторожным с кэшированными переменными. Они выглядят примерно так в коде и обычно отображаются на дисплее CMake GUI для удобного редактирования:
set(MY_VAR "ExampleString" CACHE STRING "My string variable")
Документация гласит:
Поскольку записи в кэше предназначены для предоставления настраиваемых пользователем значений это не перезаписывает существующие записи кэша по умолчанию. Используйте опцию FORCE
для перезаписи существующих записей.
Кэшированные переменные сохранят их исходное значение, если вы явно не измените или не сбросите их, добавив атрибут FORCE
в Команда set()
выше, с использованием команды unset()
или удаление их из кэша. Таким образом, изменение строки MY_VAR
на что-то другое в коде:
set(MY_VAR "OtherString" CACHE STRING "My string variable")
не изменит значения переменной, поскольку исходная строка кэшируется . Вы можете удалить переменную из кэша (или изменить кэшированное значение) из окна CMake GUI или вручную изменив файл CMakeCache.txt
в папке сборки CMake.
Если вы ищете способ быстрого удаления и повторного создания каталога сборки, простое удаление файла CMakeCache.txt
в папке сборки должно обеспечить тот же эффект.