Как очистить кеш CMake в Clion?
В настоящее время я пытаюсь поменять статические библиотеки в одном из моих проектов, который требует замены команд find_package() для явных ссылок на статические библиотеки. Одна из проблем, с которыми я столкнулся, заключается в том, что даже после удаления команд find_package(), перезагружающих проект CMake, старые переменные все еще присутствуют.
Есть ли способ явно очистить кэш CMake, кроме ручного удаления всех файлов из временной папки, создаваемой Clion для сборки проекта?
2 ответа
Начиная с CLion 1.5 144.3143 (2016-01-20), вы можете очистить кэш cmake, не теряя индексы CLion и не перезапуская (что означает: очень быстро, также для больших проектов):
Tool | CMake | "Reset cache and reload project".
Если этого по каким-то причинам недостаточно, или если у вас более старый CLion, вы можете сделать более радикальное:
File | "Invalidate Caches / Restart"
и нажмите "Отменить и перезапустить".
редактирует
- 2016-01-20: добавить более быстрый метод, доступный с более новым CLion.
В этом тайнике есть какая-то магия. Однажды я получил неверное значение для одной переменной: по какой-то причине cmake обнаружил некоторые испорченные включения freetype внутри mono.framework
(еще одна причина не любить моно...) и попытался использовать их для компиляции моего проекта. Очевидно, компиляция не удалась.
Я пытался удалить CMakeCache.txt
и пересоберите проект, но вернитесь по неверному пути. Даже после того как я удалил mono.framework
реж!
Решением было удалить неверную строку из кеша и перезапустить сборку. После этого cmake получил правильный путь, и сборка прошла успешно.
UPD: после того как я "перезагрузил cmake project" вернулось неверное значение. Удаление всего в $HOME/Library/Caches/clion11/cmake/generated/
dir (для OS X), кажется, наконец решает проблему.