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