Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
dev:cpp:boite_a_outils [2017/04/23 18:14]
sdinot [Le code, on commence par l'écrire...]
dev:cpp:boite_a_outils [2017/04/23 19:54] (Version actuelle)
sdinot [Si souvent qu'on automatise...]
Ligne 32: Ligne 32:
 ===== Si souvent qu'on automatise... ===== ===== Si souvent qu'on automatise... =====
  
-On ne présente plus l'​utilitaire Make, certainement porté sur tous les systèmes d'​exploitation actuels. Même lorsque vous utilisez un environnement de développement intégré entièrement graphique, il n'est pas rare qu'en coulisses, ce soit Make qui orchestre la compilation. [[http://​www.gnu.org/​software/​make/​|GNU Make]], qui est comme son nom l'​indique l'​implantation de Make réalisée dans le cadre du projet GNU, offre une syntaxe et des fonctions enrichies qui le rendent vite indispensable : avez-vous déjà eu la frustration de disposer d'un machine dotée de 24 cœurs et d'une vieille version propriétaire de Make, incapable de paralléliser les compilations ? Moi oui... Et lorsque j'ai enfin pu disposer de GNU Make sur cette machine, le temps de compilation de mon logiciel est passé de 10 minutes à 32 secondes. :-P+On ne présente plus l'​utilitaire Make, certainement porté sur tous les systèmes d'​exploitation actuels. Même lorsque vous utilisez un environnement de développement intégré entièrement graphique, il n'est pas rare qu'en coulisses, ce soit Make qui orchestre la compilation. [[http://​www.gnu.org/​software/​make/​|GNU Make]], qui est comme son nom l'​indique l'​implantation de Make réalisée dans le cadre du projet GNU, offre une syntaxe et des fonctions enrichies qui le rendent vite indispensable : avez-vous déjà eu la frustration de disposer d'un machine dotée de 24 cœurs et d'une vieille version propriétaire de Make, incapable de paralléliser les compilations ? Moi oui... Et lorsque j'ai enfin pu disposer de GNU Make sur cette machine, le temps de compilation de mon logiciel est passé de 10 minutes à 32 secondes. :-P Ces dernières années, un outil concurrent à GNU Make a émergé, il se nomme [[https://​ninja-build.org/​|Ninja]]. Ninja s'​avère un tantinet plus rapide que GNU Make.
  
 Je viens de vous dire beaucoup de bien de GNU Make mais je dois bien avouer qu'un script Make devient vite complexe à maintenir, surtout si vous devez gérer des compilations optionnelles et rendre votre script multiplateformes. Dans ce cas, mieux vaut confier à un outil spécialisé la détection de l'​environnement et la génération //in situ// de fichiers Makefile adaptés. Cette tâche a longtemps été confiée dans le libre aux [[http://​fr.wikipedia.org/​wiki/​Autotools|Autotools]],​ collection d'​outils que l'on désigne aussi par le nom //GNU build system//. Malheureusement,​ si ces outils remplissent bien leur rôle, ils apportent leur propre lot de problèmes, à commencer par des syntaxes absconses (oui, « des syntaxes » car il y en a trois à connaître). Parmi tous les projets initiés pour offrir une alternative simple aux Autotools, [[http://​cmake.org/​|CMake]] s'est largement démarqué. Pour faire court, oubliez le reste et plongez dans CMake ! Cet outil est puissant, souple et extensible à l'​envi,​ sa syntaxe est limpide et les paramètres de compilation peuvent être configurés via des interfaces semi-graphique (curses) ou graphique (Qt). Un script CMake est bien plus simple à écrire que les scripts GNU Make ou Autotools équivalents. Je viens de vous dire beaucoup de bien de GNU Make mais je dois bien avouer qu'un script Make devient vite complexe à maintenir, surtout si vous devez gérer des compilations optionnelles et rendre votre script multiplateformes. Dans ce cas, mieux vaut confier à un outil spécialisé la détection de l'​environnement et la génération //in situ// de fichiers Makefile adaptés. Cette tâche a longtemps été confiée dans le libre aux [[http://​fr.wikipedia.org/​wiki/​Autotools|Autotools]],​ collection d'​outils que l'on désigne aussi par le nom //GNU build system//. Malheureusement,​ si ces outils remplissent bien leur rôle, ils apportent leur propre lot de problèmes, à commencer par des syntaxes absconses (oui, « des syntaxes » car il y en a trois à connaître). Parmi tous les projets initiés pour offrir une alternative simple aux Autotools, [[http://​cmake.org/​|CMake]] s'est largement démarqué. Pour faire court, oubliez le reste et plongez dans CMake ! Cet outil est puissant, souple et extensible à l'​envi,​ sa syntaxe est limpide et les paramètres de compilation peuvent être configurés via des interfaces semi-graphique (curses) ou graphique (Qt). Un script CMake est bien plus simple à écrire que les scripts GNU Make ou Autotools équivalents.