J'ai un projet CMake C++ qui grandit rapidement et change souvent. J'essaie de réduire les temps de compilation au minimum.Comment afficher les dépendances de compilation depuis CMake ou make?
Souvent, lorsque je reconstruis le projet, surtout après un changement d'en-tête, je suis surpris du nombre d'unités de compilation qui doivent être recompilées. J'essaie d'identifier #include
s qui peuvent éventuellement être évités, par exemple en utilisant des pré-déclarations ou en ne soulignant pas les fonctions triviales dans les en-têtes.
Est-il possible de trouver, à partir de CMake, à partir du Makefile généré, ou directement à partir des fichiers eux-mêmes, quelles unités dépendent des en-têtes?
Une liste serait bien, un graphique visuel (graphviz?) Encore plus agréable. Google ne montre rien pour moi. CMake a l'option --graphviz
, mais elle opère sur des cibles, pas sur des unités de compilation individuelles.
Quelque chose multiplate-forme (c'est-à-dire utilisant seulement CMake) est préféré, mais je vais me contenter de Linux seulement.
Ceci est seulement la fermeture transitive (c'est-à-dire y compris les dépendances indirectes), mais c'est utile, merci! – Thomas