Programmation GTK2 en Pascal/Installation sous Linux

Programmation GTK2 en Pascal

Compilateur Pascal

modifier

Free Pascal

modifier

Mandrake

modifier

Avec un urpmi bien configuré ([1]) :

#urpmi fpc

et le tour est joué.

Ou pour avoir la dernière version (au mois de mars 2005, la 1.9.8), il faut télécharger sur le site http://www.freepascal.org le fichier fpc-1.9.8-0.i586.rpm qu'on installe classiquement :

#rpm --install fpc-1.9.8-0.i586.rpm

<à compléter>

En-têtes GTK2 pour le langage Pascal

modifier

Free Pascal version 1.0 ou Kylix

modifier

L'archive gtk2forpascal-1.0.7.tgz est à télécharger sur le site Gtk2 for Pascal.

Il faut décompresser ensuite l'archive, par exemple dans le répertoire où vous placez vos sources :

$tar -xvzf gtk2forpascal-1.0.7.tgz

Cela créé un sous-répertoire gtk2 avec tout ce qu'il faut dedans.

Free Pascal version 2.0 (1.9.x)

modifier

Si vous avez installé la version 2.0 du compilateur Free Pascal (ou les versions RC, 1.9.x), vous avez déjà ces en-têtes. Mais elles sont précompilés pour fonctionner avec les bibliothèques Gtk+ 2.0, pas 2.2, 2.4 ou 2.6 qui apportent pas mal de nouveautés intéressantes.

En attendant que l'équipe de Free Pascal le fasse, pour recompiler ces unités en version 2.6, la dernière disponible en mars 2005, vous devez télécharger les sources du compilateur Free Pascal, exemple pour Mandrake, le fichier fpc-1.9.8-0.src.rpm.

#rpm --install fpc-1.9.8-0.src.rpm
#cd /usr/src/RPM/SOURCES
#tar -xvzf fpc-1.9.8-src.tar.gz
#cd packages/extra/gtk2

Il faut mettre à jour le fichier gtk+/gtk/gtkincludes.inc car il y a 3 unités qui ne passent pas. Mettez en commentaires les lignes :

// new GtkFileChooser Widget
//{$IFDEF HasGTK2_6}
//{$include gtkfilechooserdefault.inc}
//{$include gtkfilechooserembed.inc}
//{$include gtkfilechooserentry.inc}
//{$ENDIF}

Puis on poursuit :

#make OPT=-dGTK2_6
#cd units/i386-linux/
#cp * /usr/lib/fpc/1.9.8/units/i386-linux/gtk2

Nos unités sont disponibles.

Bibliothèques GTK+

modifier

Sur un Linux où un Gnome récent est installé, les bibliothèques GTK+ version 2 seront installés.

Vous pouvez vérifier quelle version est installée sur votre système à l'aide de la ligne de commande suivante :

$pkg-config --modversion gtk+-2.0

S'il vous répond, un truc du style :

Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found

Ce n'est pas bon signe...

Sur une Mandrake

modifier
$urpmi gtk+2.0
Tout est déjà installé
$urpmi libgtk+2.0_0-devel
Pour satisfaire les dépendances, les paquetages suivants vont être installés (10  Mo):
libatk1.0_0-devel-1.4.1-2mdk.i586
libgdk_pixbuf2.0_0-devel-2.2.4-10.1.100mdk.i586
libgtk+2.0_0-devel-2.2.4-10.1.100mdk.i586
libpango1.0_0-devel-1.2.5-3mdk.i586
Est-ce correct ? (O/n)
[...]
# pkg-config --modversion gtk+-2.0
2.2.4

Autre solution

modifier

Taper en root « locate *.pc » pour trouver le répertoire pkgconfig.

Vérifier si le fichier "gtk+-2.0" est présent ! Si non : installer libgtk2.0-dev et libglade2-dev. Et il est conseillé d'ajouter : libgtk2.0-0, libgtk2.0-bin et libgtk2.0-common.

Compilation

modifier

Par le biais des mises-à-jour automatiques il se peut que vous ayez une version de Gtk+ assez ancienne. Par exemple sur une Mandrake 10.0, pas si vieille, c'est la version 2.2.4 de Gtk+ qui est disponible. Pour posséder une version récente, au mois de mars 2005, la 2.6.2, on peut tout recompiler.

Il faut télécharger sur le site http://www.gtk.org/ les fichiers :

  • glib+-2.6.2.tar.bz2
  • atk-1.9.0.tar.bz2
  • pango-1.8.0.tar.bz2
  • gtk+-2.6.2.tar.bz2

Puis dans l'ordre, on compile la GLib :

$tar -xvyf gtk+-2.6.2.tar.bz2
$cd glib+-2.6.2
$./configure --prefix=/usr
$make
#make install                                [# indique de passer en « root »]
$cd ..

Au tour de l'Atk :

$tar -xvyf atk-1.9.0.tar.bz2
$cd atk-1.9.0
$./configure --prefix=/usr
$make
#make install
$cd ..

De Pango :

$tar -xvyf pango-1.8.0.tar.bz2
$cd pango-1.8.0
$./configure --prefix=/usr --sysconfdir=/etc
$make
#make install
$cd ..

Et enfin de Gtk+ :

$tar -xvyf gtk+-2.6.2.tar.bz2
$cd gtk+-2.6.2
$./configure --prefix=/usr
$make
#make install
#ldconfig

Et c'est tout.