web-dev-qa-db-fra.com

Comment vider le cache CMake dans Clion?

J'essaie actuellement d'échanger des bibliothèques statiques dans l'un de mes projets, ce qui nécessite l'échange de commandes find_package () pour des liens explicites vers des bibliothèques statiques. Un des problèmes que j'ai rencontrés est que même après la suppression des commandes find_package () rechargeant le projet CMake, les anciennes variables sont toujours présentes.

Existe-t-il un moyen de vider explicitement le cache CMake autre que la suppression manuelle de tous les fichiers du dossier temporaire créé par Clion pour la construction du projet?

39
Arkadi Sim

À partir de CLion 1.5 144.3143 (2016-01-20), vous pouvez effacer le cache cmake sans perdre les index CLion et sans redémarrer (ce qui signifie: très rapide, également sur des énormes projets):

Tool | CMake | "Reset cache and reload project".

Si cela ne suffit pas pour certaines raisons, ou si vous avez un CLion plus âgé, vous pouvez faire le plus radical:

File | "Invalidate Caches / Restart" 

et cliquez sur "Invalider et redémarrer".

MODIFICATIONS

  • 2016-01-20: ajoutez la méthode la plus rapide disponible avec le nouveau CLion.
61
marco.m

Il y a de la magie avec ce cache. J'ai eu une mauvaise valeur pour une variable une fois: pour une raison quelconque, cmake a trouvé des inclusions de freetype détruites à l'intérieur de mono.framework (une autre raison de ne pas aimer le mono ...) et j'ai essayé de les utiliser pour compiler mon projet. De toute évidence, la compilation a échoué.

J'ai essayé de supprimer CMakeCache.txt et reconstruire le projet mais le chemin incorrect revient. Même après avoir supprimé mono.framework dir!

La solution consistait à supprimer une ligne incorrecte du cache et à redémarrer la génération. Après cela, cmake a obtenu le bon chemin et la construction a réussi.

PD: Après avoir "rechargé le projet cmake", une valeur incorrecte est revenue. Tout supprimer dans $HOME/Library/Caches/clion11/cmake/generated/ dir (pour OS X) semble enfin résoudre le problème.

1
Equidamoid