Windows/fr: Difference between revisions

From RawPedia
Jump to navigation Jump to search
(updated)
Line 14: Line 14:
$ pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-cmake
$ pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-cmake
# win64
# win64
$ pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make mingw-w64-x86_64-pkg-config mingw-w64-x86_64-cmake
$ pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make mingw-w64-x86_64-pkg-config mingw-w64-x86_64-cmake  
</pre>
</pre>
et les bibliothèques requises :
et les bibliothèques requises :
Line 21: Line 21:
$ pacman -S mingw-w64-i686-gtkmm mingw-w64-i686-gtkmm3 mingw-w64-i686-lcms2 mingw-w64-i686-fftw
$ pacman -S mingw-w64-i686-gtkmm mingw-w64-i686-gtkmm3 mingw-w64-i686-lcms2 mingw-w64-i686-fftw
# win64
# win64
$ pacman -S mingw-w64-x86_64-gtkmm mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-lcms2 mingw-w64-x86_64-fftw
$ pacman -S mingw-w64-x86_64-gtkmm mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-lcms2 mingw-w64-x86_64-fftw mingw-w64-x86_64-lensfun
</pre>
</pre>


Line 165: Line 165:
libjpeg-8.dll
libjpeg-8.dll
liblcms2-2.dll
liblcms2-2.dll
liblensfun.dll
liblzma-5.dll
liblzma-5.dll
libpango-1.0-0.dll
libpango-1.0-0.dll
Line 177: Line 178:
libsigc-2.0-0.dll
libsigc-2.0-0.dll
libstdc++-6.dll
libstdc++-6.dll
libsystre-0.dll
libtiff-5.dll
libtiff-5.dll
libtre-5.dll
libwinpthread-1.dll
libwinpthread-1.dll
libxml2-2.dll
libxml2-2.dll
Line 195: Line 198:


<prefix>\share\glib-2.0\schemas\gschemas.compiled -> .\share\glib-2.0\schemas
<prefix>\share\glib-2.0\schemas\gschemas.compiled -> .\share\glib-2.0\schemas
<prefix>\share\lensfun\version_1\* -> .\share\lensfun
</pre>
</pre>
où <code><prefix></code> est <code><MSYS2>\<mingw32|mingw64></code> de ci-dessus et <code>.</code> est le répertoire d'installation.
où <code><prefix></code> est <code><MSYS2>\<mingw32|mingw64></code> de ci-dessus et <code>.</code> est le répertoire d'installation.

Revision as of 17:43, 13 September 2017

Ce guide documente la méthode de compilation de RawTherapee en versions 32 bits et 64 bits pour Windows en utilisant le runtime MinGW-w64. Commencez par installer et mettre à jour MSYS2 à l'aide des instructions sur le site Web MSYS2. Puis, exécuter les commandes suivantes en utilisant soit "MinGW-w64 Win32 Shell" pour compiler une version 32 bits ou "MinGW-w64 Win64 Shell" pour compiler une version 64 bits.

RawTherapee peut se compiler en utilisant les versions GTK+ 2 ou 3. Avec GTK2 utiliser la branche gtk2; avec GTK3 la branche dev. La dernière version de RawTherapee à supporter GTK2 est 5.0-r1-gtk2 publiée le 02-02-2017. Utiliser la branche dev pour le dernier code, il exige GTK+ >=3.16.

Installation des outils et des bibliothèques

Premièrement, installer quelques outils divers :

$ pacman -S tar gzip nano make diffutils intltool git

Puis installer les outils de développement nécessaires :

# win32
$ pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-cmake
# win64
$ pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make mingw-w64-x86_64-pkg-config mingw-w64-x86_64-cmake 

et les bibliothèques requises :

# win32
$ pacman -S mingw-w64-i686-gtkmm mingw-w64-i686-gtkmm3 mingw-w64-i686-lcms2 mingw-w64-i686-fftw
# win64
$ pacman -S mingw-w64-x86_64-gtkmm mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-lcms2 mingw-w64-x86_64-fftw mingw-w64-x86_64-lensfun

Télécharger et compiler libiptcdata

La bibliothèque libiptcdata n'est plus fournie par MSYS2, cependant, elle est téléchargeable et configurable en utilisant :

$ curl -LO http://downloads.sourceforge.net/project/libiptcdata/libiptcdata/1.0.4/libiptcdata-1.0.4.tar.gz
$ tar xzf libiptcdata-1.0.4.tar.gz
$ cd libiptcdata-1.0.4

# win32
$ ./configure --prefix=/mingw32
# win64
$ ./configure --prefix=/mingw64

Ensuite Makefile doit être ouvert avec un éditeur de texte pour retirer iptc et docs des listes nommées docs et DIST_SUBDIRS, sinon, la compilation ou l'installation échouera.

$ nano Makefile

# Remplacer
DIST_SUBDIRS = m4 libiptcdata po iptc docs win python
# par
DIST_SUBDIRS = m4 libiptcdata po win python

# et remplacer
SUBDIRS = m4 libiptcdata po iptc docs win $(MAYBE_PYTHONLIB)
# par
SUBDIRS = m4 libiptcdata po win $(MAYBE_PYTHONLIB)

Enfin, compiler et installer la bibliothèque :

$ make
$ make install
$ cd

Télécharger et installer Clearlooks

Si vous compilez RawTherapee en utilisant GTK2, alors vous avez besoin du moteur de thème Clearlooks, Vous n'en n'avez pas besoin si vous utilisez GTK3.

Téléchargement et compilation :

$ curl -LO http://sources.archlinux.org/other/gtk-engines/gtk-engines-2.21.0.tar.gz
$ tar xzf gtk-engines-2.21.0.tar.gz
$ cd gtk-engines-2.21.0

# win32
$ ./configure --prefix=/mingw32 --disable-all --enable-clearlooks
# win64
$ ./configure --prefix=/mingw64 --disable-all --enable-clearlooks

$ make
$ make install
$ cd

Cloner et compiler RawTherapee

Cloner le dépôt Git de RawTherapee. Le processus de compilation va échouer s'il existe un espace dans le chemin de votre répertoire build. Par exemple si votre nom d'utilisateur sous Windows est "Zank Frappa" alors le nom du chemin sera C:\Users\Zank Frappa\ et si vous clonez RawTherapee dedans alors la compilation échouera. Clonez dans un répertoire dont ni lui-même ni ses répertoires parents n'ont d'espace dans leur nom, par exemple C:\code\repo-rt

$ git clone http://github.com/Beep6581/RawTherapee.git /c/code/repo-rt
$ cd /c/code/repo-rt

RawTherapee peut se compiler en utilisant les versions GTK+ 2 ou 3. Avec GTK2 utiliser la branche gtk2; avec GTK3 la branche dev. La dernière version de RawTherapee à supporter GTK2 est 5.0-r1-gtk2 publiée le 02-02-2017. Utiliser la branche dev pour le dernier code, il exige GTK+ >=3.16. Lors du clonage du dépôt, vous allez automatiquement vous retrouver dans la branche dev. Pour basculer manuellement dans la branche dev, faites ceci :

$ git checkout dev

Créer une répertoire séparé pour la compilation :

$ mkdir build
$ cd build

Notez que si vous changez de branche, alors vous devez effacer et re-créer le répertoire build afin que la compilation parte depuis le début dans un répertoire vide, sinon la compilation risque d'échouer. Cependant si vous faites une simple mise à jour sans changer de branche, alors vous n'avez pas besoin de démarrer dans un répertoire build vide, vous pouvez utiliser celui qui existe et la compilation sera plus rapide car tout n'a pas besoin d'être re-compilé.

Exécuter CMake et Make :

$ cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE="release" -DPROC_TARGET_NUMBER="2" -DCACHE_NAME_SUFFIX="5-dev" ..
$ make install

Référez vous à l'article Linux pour avoir une explication des diverses options passées à CMake et Make, y compris quel "BUILD_TYPE" utiliser.

Si vous réalisez une compilation pour Windows XP 32 bits et utilisez le "BUILD_TYPE" release ou relwithdebinfo, vous aurez besoin d'ajouter le drapeau de compilation -mstackrealign avant les deux derniers points .. de la commande CMake ci-dessus :

-DCMAKE_C_FLAGS="-mstackrealign" -DCMAKE_CXX_FLAGS="-mstackrealign"

Copier RawTherapee et les DLL requises

RawTherapee peut maintenant être démarré depuis la ligne de commande de MSYS2 :

# pour les compilations debug
$ cd debug
# pour les compilations release
$ cd release
# pour les compilations relwithdebinfo
$ cd relwithdebinfo
$ ./rawtherapee.exe

Le gestionnaire de fichiers peut être utilisé pour copier le contenu de c:\code\repo-rt\build\<debug|release|relwithdebinfo> avec les DLL nécessaires de <MSYS2>\<mingw32|mingw64>\bin dans un répertoire d'installation de RawTherapee, où <MSYS2> est le répertoire d'installation de MSYS2.

Voici une liste (peut-être incomplète) des DLL requises :

libatk-1.0-0.dll
libatkmm-1.6-1.dll
libsz-1.dll
libcairo-2.dll
libcairo-gobject-2.dll
libcairomm-1.0-1.dll
libcroco-0.6-3.dll
libepoxy-0.dll
libexpat-1.dll
libffi-6.dll
libfftw3f-3.dll
libfontconfig-1.dll
libfreetype-6.dll
libgcc_s_seh-1.dll
libgdk_pixbuf-2.0-0.dll
libgdk-3-0.dll
libgdkmm-3.0-1.dll
libgio-2.0-0.dll
libgiomm-2.4-1.dll
libglib-2.0-0.dll
libglibmm-2.4-1.dll
libgmodule-2.0-0.dll
libgobject-2.0-0.dll
libgomp-1.dll
libgraphite2.dll
libgtk-3-0.dll
libgtkmm-3.0-1.dll
libharfbuzz-0.dll
libiconv-2.dll
libintl-8.dll
libjpeg-8.dll
liblcms2-2.dll
liblensfun.dll
liblzma-5.dll
libpango-1.0-0.dll
libpangocairo-1.0-0.dll
libpangoft2-1.0-0.dll
libpangomm-1.4-1.dll
libpangowin32-1.0-0.dll
libpcre-1.dll
libpixman-1-0.dll
libpng16-16.dll
librsvg-2-2.dll
libsigc-2.0-0.dll
libstdc++-6.dll
libsystre-0.dll
libtiff-5.dll
libtre-5.dll
libwinpthread-1.dll
libxml2-2.dll
zlib1.dll

Les fichiers suivants doivent aussi être copiés :

<prefix>\bin\gspawn-<win32|win64>-helper.exe -> .
<prefix>\bin\gspawn-<win32|win64>-helper-console.exe -> .

<prefix>\lib\gtk-2.0\include -> .
<prefix>\lib\gtk-2.0\modules -> .
<prefix>\lib\gtk-2.0\2.10.0\engines -> .

<prefix>\lib\gdk-pixbuf-2.0 -> .\lib\gdk-pixbuf-2.0

<prefix>\share\glib-2.0\schemas\gschemas.compiled -> .\share\glib-2.0\schemas
<prefix>\share\lensfun\version_1\* -> .\share\lensfun

<prefix> est <MSYS2>\<mingw32|mingw64> de ci-dessus et . est le répertoire d'installation.

Création d'un paquetage distribuable

Si vous avez l'intention de distribuer des paquetages de RawTherapee pour la plateforme Windows, vous devez tout d'abord vous assurer que RawTherapee sera compilé avec pour cible le processeur "générique". Pour cela, indiquer -DPROC_TARGET_NUMBER="1" dans la commande CMake.

Pendant la compilation, un script nommé WindowsInnoSetup.iss est créé dans le répertoire d'installation de RawTherapee. Ce script est utilisé par Inno Setup [1], un programme qui est utilisé pour générer des installateurs pour les programmes Windows. Il est conseillé de télécharger la version Unicode [2] pour éviter les problèmes avec certaines langues. L'actuel script WindowsInnoSetup.iss est conçu pour la branche gtk2. Si vous désirez créer un paquetage pour une compilation GTK3 (brannche dev ou releases), vous aurez besoin d'éditer le script et de remplacer la ligne :

Source: "{#MyBuildBasePath}\lib\*"; DestDir: "{app}\lib\"; Flags: ignoreversion recursesubdirs createallsubdirs

par

Source: "{#MyBuildBasePath}\share\*"; DestDir: "{app}\share\"; Flags: ignoreversion recursesubdirs createallsubdirs

ainsi les icônes et les schémas seront copiés dans le paquetage.

Pour aider les utilisateurs à écrire de bons rapports de bogues, les mainteneurs de paquetages sont encouragés à produire des compilations qui contiennent à la fois un exécutable "release" et un "debug", et de les rassembler avec l'exécutable GDB debugger. En d'autres termes, mettre ensemble le fichier rawtherapee.exe (release), le fichier rawtherapee-debug.exe (debug) et le fichier gdb.exe dans le même installeur ou la même archive. Une autre méthode est de réaliser des compilations "relwithdebinfo", elles sont beaucoup plus rapides que "debug", mais pas autant optimisées que "release", et fournissent a peu près autant d'informations utiles que "debug". Lors de la réalisation de compilations "relwithdebinfo" ou "debug", vous devez fournir l'exécutable du debugger GDB. Les binaires Windows du debugger gdb.exe peuvent être téléchargés depuis ici dans les versions 32 et 64 bits. Le binaire gdb.exe disponible sur http://www.gnu.org/software/gdb/, doit être copié dans le répertoire d'installation de RawTherapee et, en cas d'utilisation de Inno Setup pour générer le paquetage, le script WindowsInnoSetup.iss doit être édité en dé-commentant (enlever le point-virgule placé en tête) ce qui suit autour de la ligne 114 du script :

;Source: "{#MyBuildBasePath}\gdb.exe"; DestDir: "{app}"; Flags: ignoreversion

Maintenant que tout est en place, pour créer le paquetage cliquer droit sur le script WindowsInnoSetup.iss et choisir Compile dans le menu contextuel. Il va générer l'installeur automatiquement et le placer dans le répertoireparent.

Pour rendre votre paquetage compatible avec le panneau de télévezrsement du site web de RawTherapee, créer une archive zip dans laquelle vous placerez ensemble l'installeur nouvellement créé et les fichiers AboutThisBuild.txt correspondants qui se trouvent à le même place. Nommer l'archive zip résultante selon ce modèle :

RawTherapee_<WinXP|WinVista>_<32|64>_<version>_<buildtype>.zip

  • "WinXP" signifie que la compilation est seulement pour Windows XP. "WinVista" signifie qu'il peut s'exécuter sur toute version de Windows depuis Vista et après, y compris 10.
  • la "version" ressemblera soit à 5.2 si vous utilisez la balise 5.2, ou à 5.2-dev-g1a2b3c4d si vous utilisez la branche dev après avoir balisé 5.2.
  • Si vous fournissez plus d'un type de compilation dans l'installeur, incluez le nom de tous les types de compilation, par exemple release_debug.

Exemples :

  • RawTherapee_WinVista_64_5.2_release.zip
  • RawTherapee_WinVista_64_5.2_release_debug.zip
  • RawTherapee_WinVista_64_5.2-dev-g1a2b3c4d_release_debug.zip