Les deux révisions précédentesRévision précédente | |
ateliers:cpp_qt [2024/05/01 22:05] – Suppression des inclusions HTML, car non supportées par la version actuelle de Dokuwiki sebastien.dinot | ateliers:cpp_qt [2024/05/01 22:12] (Version actuelle) – sebastien.dinot |
---|
==== Prochain Atelier C++ ==== | ==== Prochain Atelier C++ ==== |
| |
Dans le cadre des ateliers C++ de Toulibre, nous vous proposons le **samedi 2 décembre 2023 à 14 heures** une présentation sur le thème suivant : | Dans le cadre des ateliers C++ de Toulibre, nous vous proposons le **samedi 4 mai 2024 à 14 heures** une présentation sur le thème suivant : |
| |
=== Conteneurisez vos environnements de développement avec les devcontainers === | === Fonctions avancées de CMake : Presets, FetchContent et Unity Builds === |
| |
Dès que l’on démarre un projet, que l’on en rejoint un, ou que l’on change de machine de travail, il y a toujours cette première phase un peu fastidieuse de mise en place des environnements de développement : installation des dépendances, des compilateurs, définition de variables d’environnement… Si l’on n’est pas prudent, on peut vite croiser ces dépendances entre plusieurs projets, casser les builds, et passer plus de temps que prévu pour que la compilation et l’exécution des tests « tombent en marche ». | Cet atelier se concentrera sur l’usage de CMake pour standardiser, faciliter et accélérer la compilation de vos projets C++. |
| |
Côté déploiement d’applications, ces problèmes de standardisation et d’isolation des environnements ont déjà trouvé leur solution : la conteneurisation avec, par exemple, Docker. Alors pourquoi ne pas utiliser le même remède pour les mêmes problèmes mais côté développeurs ? Dans le principe, l’idée est simple : définissez une image Docker contenant tous les outils nécessaires à vos développements, démarrez-la, copiez-y vos sources puis connectez-y votre IDE. Dans la mise en œuvre, faire ça manuellement peut vite être lourd. | À l’aide des CMake Presets, nous verrons comment pré-définir et partager avec vos collaborateurs des jeux d’options de compilation, et comment intégrer ces profils de compilation votre IDE. |
| |
Pour simplifier le processus, Microsoft a standardisé ces dernières années les « devcontainers » pour automatiser la création et l’utilisation de ces environnements de développement conteneurisés avec VSCode. | Pour simplifier la gestion de certaines dépendances, nous verrons comment la fonctionnalité FetchContent de CMake, et sa surcouche CMake Package Manager (CPM), vous permettent de récupérer et intégrer à vos compilations les sources de projets externes. Nous verrons en particulier comment rendre cette approche « opt-in » ou « opt-out » si vous souhaitez laisser vos utilisateurs gérer par eux mêmes les dépendances sans dépendre de FetchContent. |
| |
D’autres IDE comme la suite JetBrains commencent à supporter ce standard, et une CLI devcontainer est également disponible pour facilement démarrer le devcontainer associé à un projet, libre à vous d’y connecter ensuite tout IDE (libre !) supportant les environnements Docker. | Enfin, nous verrons comment bénéficier des Unity Builds qui permettent d’accélérer fortement la compilation de gros projets C++ en attendant que les modules soient utilisables en production. |
| |
Au cours de cet atelier, nous verrons comment VSCode permet de définir simplement le fichier « devcontainer.json » qui est au cœur du standard pour ajouter et partager des environnements de développement conteneurisés à vos projets. | Ces trois fonctionnalités de CMake, Presets, FetchContent et Unity Builds, peuvent coexister dans un même projet, mais avec parfois des effets de bord dont il faut se méfier. Certaines de ces difficultés |
| seront abordées pour vous aider à les éviter. |
Nous verrons les options proposées de personnalisation de l’environnement (extensions recommandées de l’IDE, script de démarrage…) et la simplicité avec laquelle il est possible de charger cet environnement par simple clone de la base git associée. | |
| |
Dans une phase plus exploratoire de l’atelier, nous pourrons tenter d’utiliser l’outillage des devcontainers et en particulier la CLI pour bénéficier de ces environnements dans des IDE libres et libérateurs comme VSCodium ou GNU Emacs. | |
| |
**Pour profiter pleinement de l’atelier, venez avec votre machine où vous aurez pré-installé Docker et VSCode** (et non pas VSCodium malheureusement…). Vous pouvez également pré-installer [[https://github.com/devcontainers/cli|devcontainer/cli]] pour la seconde partie de l’atelier où nous tenterons de coupler les devcontainers avec d’autres IDE. | |
| |
À propos de l’intervenant : | À propos de l’intervenant : |
| |
La participation est gratuite et ouverte. N’hésitez pas à entrer et à découvrir le lieu. :) | La participation est gratuite et ouverte. N’hésitez pas à entrer et à découvrir le lieu. :) |
| |
==== Informations Complémentaires ==== | ==== Informations Complémentaires ==== |
| |
Les ateliers se dérouleront dans les locaux du fablab [[https://artilect.fr/|Artilect]] dans le centre de Toulouse, [[https://osm.org/go/xVYALNx6U-?m=|10 rue Tripière]]. | Les ateliers se dérouleront dans les locaux du fablab [[https://artilect.fr/|Artilect]] dans le centre de Toulouse, [[https://osm.org/go/xVYALNx6U-?m=|10 rue Tripière]]. |
| |
| |
==== Espace d'échange ==== | ==== Espace d'échange ==== |