vcpkg – un gestionnaire de bibliothèques C/C++

A chaque réinstallation de Visual Studio je râle contre la galère d’installer les différentes dépendances de compilation de mes projets, surtout une fois qu’on a goûté sur d’autres OS ou dans d’autres langages à des gestionnaires de packages comme sous linux, ou maven en java, pip en python, ou npm en js. Cela existe maintenant avec vcpkg , open-source, multiplateforme, initié par Microsoft et alimenté par la communauté, une nouvelle preuve de la nouvelle orientation intéressante de Microsoft vers le développeur, l’open-source et Linux.

L’installation est un peu inhabituelle sous Windows puisqu’on va commencer par cloner le repository et compiler l’outil :

Ce qui au final est très agréable puisqu’on obtient un répertoire tout à fait portable. 

Pour intégrer vcpkg à Visual Studio, il suffit de lancer :

J’ai pris l’habitude pour simplifier la distribution de mes projets de toujours compiler en statique, pour éviter les dépendances avec les librairies Visual Studio, et devoir ainsi distribuer l’installateur correspondant. vcpkg intègre la possibilité de construire l’ensemble des bibliothèques avec des paramètres cohérents, regroupés sous l’appellation de “triplets”. Pour compiler en statique et en 32bits le triplet correspondant est “x86-windows-static”. Pour éviter de l’oublier j’ai ajouté un fichier batch “vcpkg-static.bat” qui contient simplement :

Pour ajouter la configuration du triplet dans le projet, il faut éditer le vcxproj et ajouter dans le groupe de propriétés “Globals” la mention du triplet :

Ensuite pour installer un paquet, rien de plus simple :

vcpkg télécharge et compile la bibliothèque demandée et ses dépendances. Pour wxwidgets tout s’est passé automatiquement sans problème et a pris 16 minutes. A noter que les paquets sources des bibliothèques jpeg, png, zlib & co  sont celles de vcpkg et non celles incluses dans wxwidgets. Vous n’aurez donc pas exactement le même nommage des bibliothèques à inclure à l’édition de liens (quelques préfixes wx à retirer, que l’on identifie assez simplement en observant le contenu du répertoire  vcpkg\installed\x86-windows-static\lib  

Attention vcpkg ne fait pas le ménage, et va vite prendre des gigas si vous n’y faites pas attention. Il suffit alors de supprimer régulièrement les répertoires intermédiaires de compilation et de téléchargement : rmdir /s /q packages buildtrees downloads    (dans un vcpkg-clean.bat par exemple)

Je commence à aimer à nouveau Windows comme environnement de développement 😉

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.