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 compris preferences.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é