Objectif : compiler une application Vala/GTK+ sous Linux à destination de Windows©.
Nous avons une application codée en Vala, utilisant GTK+2 pour son rendu graphique :

Nous désirons en produire une version Windows sans modifier le code source ni disposer d'une machine Windows.
Une distribution Linux Debian ou Ubuntu, avec Vala installé.
Pour installer Vala, reportez-vous à cet article, partie 1).
- Installez le compilateur GCC pour Windows (appelé MinGW) :
apt-get install mingw32
- Téléchargez GTK+ 2.24 pour Windows :
gtk+-bundle_2.24.10-20120208_win32.zip (23,5 Mo)
(ps : Créez un dossier nommé "gtk-win32" à l'emplacement de votre choix, mettez-y l'archive ZIP et extrayez-la avec :
unzip gtk+-bundle_2.24.10-20120208_win32.zip)
- Adapter GTK+ à son emplacement :
Dans un terminal, déplacez-vous dans le dossier "gtk-win32" que vous venez de créer. Par exemple, si vous avez extrait dans "/opt/gtk-win32", tapez :
cd /opt/gtk-win32
puis faites :
find -name '*.pc' | while read pc; do sed -e "s@^prefix=.*@prefix=$PWD@" -i "$pc"; done
- Nous allons indiquer à "pkg-config" de localiser les librairies GTK+ dans notre chemin spécial. Par exemple, si vous avez extrait dans "/opt/gtk-win32", tapez :
export PKG_CONFIG_PATH=/opt/gtk-win32/lib/pkgconfig
Nous sommes prêts ! Nous allons ici nous servir de ce code source pour l'exemple.
- Compiler l'exemple :
valac --cc=i586-mingw32msvc-gcc --pkg gtk+-2.0 -o testGTK2.exe testGTK2.vala
Si tout s'est bien passé, un nouvel exécutable testGTK2.exe a dû apparaître.
Celui-ci ne se lancera pas sous Linux, car il est destiné à Windows !
- Créez un dossier contenant l'exécutable et l'ensemble des .dll Windows. Par exemple, si vous aviez extrait dans "/opt/gtk-win32" :
mkdir ~/distri
cp testGTK2.exe ~/distri
cp /opt/gtk-win32/bin/*.dll ~/distri
- C'est prêt à fonctionner ! Transférez ce dossier sur un poste Windows. Double-cliquez sur l'exécutable et...

Voilà !