Подтвердить что ты не робот

Как очистить кэш CMake в Clion?

В настоящее время я пытаюсь обменивать статические библиотеки в одном из моих проектов, который требует замены команд find_package() для явных ссылок на статические библиотеки. Одна из проблем, с которыми я столкнулась, заключается в том, что даже после удаления команд find_package(), перезагружающих проект CMake, старые переменные все еще присутствуют.

Есть ли способ явно очистить CMake-кеш, кроме ручного удаления всех файлов из временной папки, созданной Clion для создания проекта?

4b9b3361

Ответ 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), похоже, окончательно решает проблему.