Je travaille sur un projet multi-plateforme qui utilise un grand nombre de bibliothèques tierces (actuellement 22 et comptant, et je m'attends à ce que ce nombre augmente considérablement). Mon projet est basé CMake, et maintient le ThirdParty/répertoire organisé comme ceci:Cadre pour la construction et la gestion de bibliothèques tierces
ThirdParty/libname de $/include/
ThirdParty/$ libname/lib/plate-forme $/buildtype $/
Mes CMakeLists. txt a la logique pour déterminer les valeurs appropriées pour $ platform (mac-i386, mac-ia64, win32-i386, et ainsi de suite) et $ buildtype (debug/release).
La difficulté se pose de garder ces bibliothèques à jour pour chaque plate-forme. Actuellement, je le fais manuellement - quand je mets à jour une bibliothèque, je vais la reconstruire pour chaque plate-forme. Mais c'est un cauchemar, et l'ajout d'une nouvelle plate-forme est une affaire de deux jours.
Ce serait facile à automatiser si les bibliothèques tierces étaient elles-mêmes basées sur CMake, mais elles utilisent tout de CMake à autoconf pour des solutions personnalisées aux Makefiles roulés à la main. Il n'y a pas de cohérence entre eux, et tous exigent de franchir différents obstacles en ce qui concerne la construction de la plate-forme (en particulier en ce qui concerne les builds de 32 à 64 bits).
Existe-t-il des outils (ou des extensions CMake) qui faciliteraient la gestion? Y a-t-il même un terrain d'entente raisonnable entre CMake et autoconf, par exemple? La solution idéale me donnerait une seule commande pour construire tout ce qui doit être reconstruit pour une plate-forme donnée (la compilation croisée n'est pas nécessaire, car j'ai accès à toutes les plateformes nécessaires), mais tout ce qui me faciliterait la vie progressivement être apprécié.
Wow. Cela ressemble exactement à ce que je cherche. Merci! – Xtapolapocetl