URL: https://linuxfr.org/news/sortie-de-gtk-fortran-19-04 Title: Sortie de gtk-fortran 19.04 Authors: vmagnin ZeroHeure, Benoît Sibaud, Davy Defaud, Nils Ratusznik, Ysabeau 🧶 et palm123 Date: 2019年04月26日T12:52:28+02:00 License: CC By-SA Tags: gtk-fortran, fortran et gtk Score: 23 Lancée début 2011, la bibliothèque gtk-fortran permet de créer des interfaces graphiques [GTK](https://fr.m.wikipedia.org/wiki/GTK_(boîte_à_outils)) dans des programmes en Fortran. Elle est multi‐plate‐forme (GNU/Linux, Windows via MSYS2, BSD et macOS) et le projet est publié sous licence GNU GPL v3. Environ 10 000 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 bibliothèque de tracé scientifique PLplot. La version 19.04 vient de sortir. Une présentation technique de gtk-fortran et les nouveautés de cette version suivent en deuxième partie. Profitez‐en, avec cette dépêche, c’est l’auteur de la bibliothèque qui régale ! ---- [Journal à l’origine de la dépêche](https://linuxfr.org/users/vmagnin/journaux/gtk-fortran-19-04-est-sorti-e) [Page principale du projet](https://github.com/vmagnin/gtk-fortran/wiki) [John Reid : The New Features of Fortran 2003 (PDF)](https://wg5-fortran.org/N1601-N1650/N1648.pdf) [Un exemple de projet utilisant gtk-fortran](https://egr.vcu.edu/departments/mechanical/research/nuclear-simulator-lab/) ---- # 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 bibliothèques 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 ce prototype C situé dans `/usr/include/gtk-3.0/gtk/gtkwindow.h` : ```C void gtk_window_set_title (GtkWindow *window, const gchar *title); ``` On obtient l’interface Fortran suivante : ```Fortran 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 : ```C typedef enum { G_DATE_DAY = 0, G_DATE_MONTH = 1, G_DATE_YEAR = 2 } GDateDMY; ``` Ce qui devient en Fortran : ```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 bibliothèque) 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 GTK 3, un effort particulier sur la qualité de la documentation, des corrections de bogues 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 !

AltStyle によって変換されたページ (->オリジナル) /