Как очистить кеш 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), кажется, наконец решает проблему.

Другие вопросы по тегам