Journal gtk-fortran 19.04 est sorti(e)

Posté par  (site web personnel) . Licence CC By‑SA.
20
26
avr.
2019
Ce journal a été promu en dépêche : Sortie de gtk-fortran 19.04.

Présentation

Lancée début 2011, la librairie gtk-fortran permet de créer des interfaces graphiques GTK dans des programmes en Fortran. Elle est multi-plateforme (Linux, Windows via MSYS2, BSD et macOS) et le projet est publié sous licence GNU GPLv3. Environ 10000 fonctions sont accessibles (GTK, GDK, GdkPixbuf, Cairo, Pango, ATK, GLib, GObject, GIO). En plus de l'aspect interface graphique, gtk-fortran permet également :

  • d'accéder aux fonctions de la GLib,
  • d'accéder aux fonctionnalités de la librairie de tracé scientifique PLplot.

Quelques aspects techniques

Techniquement, gtk-fortran utilise le module ISO_C_BINDING introduit dans la norme Fortran 2003 afin de faciliter et de normaliser l'interfaçage entre les programmes Fortran et C, en assurant au mieux l'interopérabilité des types de données, des pointeurs, des appels de fonctions, etc.

Un programme Python se charge de parcourir les fichiers .h des librairies GTK afin d'essayer d'en extraire la substantifique moelle à l'aide d'expressions régulières et de générer les interfaces Fortran permettant d'accéder aux fonctions C.

Par exemple, pour le prototype C

    void gtk_window_set_title (GtkWindow *window, const gchar *title);

situé dans /usr/include/gtk-3.0/gtk/gtkwindow.h, on obtient l'interface Fortran suivante :

    subroutine gtk_window_set_title(window, title) bind(c)
      use iso_c_binding, only: c_ptr, c_char
      type(c_ptr), value :: window
      character(kind=c_char), dimension(*) :: title
    end subroutine

La plupart des énumérations sont également traduites. Par exemple :

    typedef enum
    {
      G_DATE_DAY   = 0,
      G_DATE_MONTH = 1,
      G_DATE_YEAR  = 2
    } GDateDMY;

devient en Fortran :

    enum, bind(c)    !GDateDMY
      enumerator :: G_DATE_DAY = 0
      enumerator :: G_DATE_MONTH = 1
      enumerator :: G_DATE_YEAR = 2
    end enum

Nouveautés dans gtk-fortran 19.04

La version 19.04 (la numérotation correspond à la version d'Ubuntu utilisée pour générer la librairie) est basée sur GTK 3.24.8, GLib 2.60.0 et GTK 2.24.32. Elle se caractérise également par l'ajout d'outils permettant de repérer les fonctions GTK obsolètes (deprecated), la parallélisation de la compilation (make -j) dans la branche gtk3, un effort particulier sur la qualité de la documentation, des corrections de bugs dans les exemples…

Futurs développements

Concernant l'avenir, le projet se prépare lentement à l'arrivée de GTK 4. Avec également une réflexion sur l'opportunité de passer de CMake à Meson, outil désormais utilisé par le projet GTK.

Les bonnes volontés sont bien sûr les bienvenues, d'autant plus que nous ne sommes pas Légion !

Liens

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.