Sommaire
Introduction au développement d'Inkscape
Lien du code : https://gitlab.com/inkscape/inkscape
Nous présentons ici une référence rapide, pour vous aider à commencer à développer Inkscape. Pour obtenir les détails, regardez le wiki d'Inkscape et les autres documentations spécifiques.
Créer un compte sur GitLab
Pour rapporter des bogues et aider concernant les sujets techniques, vous aurez besoin d'un compte GitLab. Pour publier du code source, vous aurez également besoin de configurer des clés SSH pour votre compte. Des instructions détaillées pour créer et configurer un compte sont disponibles dans le didacticiel d'utilisation de GitLab.
Récupérer le code source
La première étape est d'obtenir le code source. Télécharger les fichiers du code source de la version publiée (« livraison ») n'est pas suffisant car vous aurez besoin de la dernière version du code source pour développer Inkscape.
Inkscape utilise le gestionnaire de versions Git. Des instructions d'installation en fonction de votre plateforme sont disponibles ici. Sous Debian et ses dérivés (par ex. Ubuntu), vous devez installer le paquet git.
Nous recommandons de configurer un compte GitLab (voir ci-dessus) avant d'obtenir le code source car il sera ainsi plus facile de publier vos modifications lorsque vous obtiendrez les droits de publication. Après avoir créé votre compte GitLab, exécutez les commandes suivantes :
git config --global user.name "Vrai Nom" git config --global user.email "courriel@domaine.net"
où Vrai Nom est votre vrai nom ou un pseudonyme que vous souhaitez utiliser (il devrait être reconnaissable par les gens de la liste de diffusion) et courriel@domaine.net est votre adresse électronique pour la correspondance relative à Inkscape (vous pouvez la déformer si vous le souhaitez, pour empêcher sa lecture par des robots — dans ce cas, vous devrez ajouter l'adresse déformée sur GitLab afin que vos commissions soient associées à votre compte). Avec cette configuration, vous pourrez envoyer vos changements une fois que vous aurez été approuvé en tant que membre de l'équipe des développeurs d'Inkscape sur GitLab.
Pour obtenir le code source le plus récent, utilisez la commande suivante :
git clone --recurse-submodules git@gitlab.com:inkscape/inkscape.git
Pour mettre à jour le code par la suite, utilisez :
git pull --recurse-submodules
Compiler Inkscape sous Linux
Installation des dépendances
Pour compiler Inkscape, vous aurez besoin d'installer le compilateur GCC et les fichiers de développement de toutes les bibliothèques utilisées. La façon la plus facile de faire cela sur Debian et les distributions apparentées est d'utiliser la commande :
sudo apt build-dep inkscape
Note :
Pour le développement, vous devriez utiliser une configuration à jour, comme celle du PPA des dernières versions :
sudo add-apt-repository ppa:inkscape.dev/trunk sudo apt update sudo apt install inkscape-trunk
Dans ce cas, vous pouvez utiliser cette commande alternative pour obtenir une liste des dépendances plus juste :
sudo apt build-dep inkscape-trunk
Notez que ceci installera les dépendances de la compilation disponibles dans vos dépôts pour le paquet Inkscape. Si le paquet est vieux, vous aurez peut-être besoin d'installer des dépendances supplémentaires ; la sortie du script configure
devrait vous donner des indices à propos des besoins additionnels.
À partir de la version 0.92
Deux systèmes de construction sont pris en charge pour Inkscape 0.92 : autotools et CMake.
Pour compiler avec CMake, utilisez les commandes suivantes :
mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst [-DCMAKE_CXX_COMPILER_LAUNCHER=ccache] make [-j8] make install
Lancez-le depuis le répertoire de construction :
../inst/bin/inkscape
Notes :
- Les crochets annotent les paramètres facultatifs.
- Le paramètre
-j8
donné àmake
lui indique de lancer 8 processus en parallèle. Vous pouvez ajuster ce nombre afin qu'il corresponde au nombre d'unités de traitement matérielles disponibles sur votre ordinateur. - Le paramètre optionnel
-DCMAKE_INSTALL_PREFIX
vous permet d'installer une seconde version d'Inkscape en parallèle, dans un répertoire différent (/usr dans l'exemple). Elle utilisera dans tous les cas les fichiers (y comprispreferences.xml
) se trouvant dans le répertoire~/.config/inkscape
.
Versions 0.92 et précédentes
Une fois que les dépendances ont été installées, utilisez les commandes suivantes dans le dossier du code source d'Inkscape :
./autogen.sh ./configure [--prefix=/usr] make [-j8] make install
Le paramètre -j8
donné à make
lui indique de lancer 8 processus en parallèle. Vous pouvez ajuster ce nombre afin qu'il corresponde au nombre d'unités de traitement matériel disponibles sur votre ordinateur. Le paramètre optionnel --prefix
vous permet d'installer une seconde version d'Inkscape en parallèle, dans un répertoire différent (/usr dans l'exemple). Elle utilisera également les fichiers (y compris preferences.xml
) se trouvant dans le répertoire ~/.config/inkscape
.
Compiler Inkscape sous Windows
Les instructions les plus récentes sont disponibles sur le wiki d'Inkscape : Compiler Inkscape sous Windows.
Compiler Inkscape sous Mac
Installez les dépendances listées sur le wiki :
port install cairo boehmgc gtkmm3 intltool libxslt lcms2 gdl3 \ popt poppler boost gsl gnome-vfs libgnomeprintui git cmake potrace libsoup
Récupérez Inkscape :
git clone --recurse-submodules git@gitlab.com:inkscape/inkscape.git
Compilez-le :
mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst && make -j8 && make install
Exécutez-le :
../inst/bin/inkscape
Déboguer avec GDB
Inkscape doit être compilé avec l'option -g
pour g++
afin de pouvoir être débogué avec GDB.
Développement d'Inkscape
Le code d'Inkscape
Inkscape a démarré comme une copie de Sodipodi, une application GNOME basée sur GObject. Inkscape est écrit en une mixture de C et de C++, pour des raisons historiques. Nous espérons finir par migrer complètement vers le C++. Il y a toutefois toujours beaucoup de code basé sur GObject, donc des connaissances en GObject sont nécessaires pour travailler dans Inkscape.
Inkscape utilise la boîte à outils GTK+ et la bibliothèque de support Glib. Nous migrons actuellement de GTK+ 2.0 vers GTK+ 3.0. Nous utilisons également les parties « en-tête seulement » de Boost (c'est donc une dépendance de compilation, mais pas d'exécution). Il est envisagé que la bibliothèque de géométrie lib2geom, écrite en C++, devienne finalement un projet séparé. Vous pouvez obtenir la dernière version de lib2geom depuis son dépôt sur GitLab.
Savoir bien programmer en C++, et utiliser GTK est essentiel pour contribuer à Inkscape. Heureusement, ils ne sont pas si compliqués à apprendre ; lisez donc des didacticiels appropriés.
Le projet Inkscape utilise Doxygen pour générer automatiquement la documentation du code source (y compris des diagrammes de la structure du programme). Vous pouvez rapidement obtenir une vue d'ensemble de la partie du programme sur laquelle vous souhaitez travailler ici.
Style du code source
Le guide décrivant le style du code source C++ au sein du projet Inkscape peut être trouvé ici.
Liens
Communauté
-
Liste de diffusion :
inkscape-devel@lists.inkscape.org
. Les développeurs sont généralement inscrits à la liste de diffusion. -
IRC :
#inkscape-devel
sur libera.chat. -
Traqueur de bogues d'Inkscape : Corriger des bogues simples est une bonne manière de démarrer avec le développement d'Inkscape.