4 votes

Y a-t-il un logiciel pour recompiler un projet logiciel basé sur CMake lors de modifications de fichiers?

Je travaille sur un projet logiciel en C++ qui utilise CMake comme système de construction. Le logiciel est développé sur Mac OS/X, Linux ainsi que Windows.

Afin d'améliorer mon cycle habituel de hack / compilation / test, je me demandais s'il existe peut-être un logiciel de type démon qui est conscient de tous les fichiers source considérés par un projet CMake. Chaque fois qu'un des fichiers source est modifié, le démon le remarque et reconstruit les cibles affectées. L'idée est que l'étape de 'compilation' dans mon cycle deviendrait plus rapide car elle pourrait simplement retourner immédiatement en disant 'Rien à faire puisque votre démon de construction de quartier a déjà reconstruit tous les fichiers'.

Est-ce que quelqu'un connaît un logiciel existant qui peut le faire? Sinon - est-il d'une manière ou d'une autre possible d'exporter la liste des fichiers source considérés par CMake afin que je puisse écrire un petit démon moi-même qui surveille ces fichiers et relance automatiquement make (ou tout ce qui est approprié pour le générateur choisi) ? Dans le meilleur des cas, j'obtiendrais également l'arborescence des dépendances afin que je puisse peut-être éviter de vérifier toutes les dépendances encore et encore et simplement mettre à jour les cibles dont j'ai besoin.

2voto

darioo Points 23903

J'ai utilisé JNotify pour surveiller avec succès les changements de fichiers sans trop de tracas.

Cela fonctionne pour tous les systèmes d'exploitation que vous avez mentionnés et la détection des changements de fichiers est presque instantanée. Il peut détecter la création de fichiers, leur suppression, leur modification, etc.

Un bel exemple de code peut être trouvé ici.

Vous pouvez faire quelque chose comme ceci:

class CMakeListener implements JNotifyListener {
    public void fileModified(int wd, String rootPath, String name) {
       // si un fichier est un fichier cpp ou hpp, exécuter CMake
    }
}

et votre tâche CMake devrait être joliment automatisée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X