Skip to content

Releases: vmagnin/gtk-fortran

gtk-fortran 4.9.0

20 Nov 13:14
615c28d

Choose a tag to compare

This release offers interfaces to GTK 4.20 and GLib 2.86 (generated under Fedora 43 with GTK 4.20.2 and GLib 2.86.1).

Added

  • In CMakeLists.txt:
    • support for Flang and LFortran. Their unsupported flags are filtered. Note however that LFortran 0.56 alpha is not yet ready to compile gtk-fortran.
    • A few errors (issue #300) and warnings detected by Flang 20.1.3 were fixed. Flang now compiles entirely gtk-fortran (last tested with Flang 21.1.5).
    • Improved messages (linker version, compilation flags, GTK and PLplot dirs, installation dirs...).
  • In src/alt_build_test.sh: support for Flang and LFortran (when it will be ready to compile gtk-fortran). And messages were improved.

Changed

  • src/gtk-sup.f90: the function fdate() was renamed fmt_date() to avoid confusion with the GNU intrinsic subroutine.

Removed

  • In src/gtk-sup.f90: removed the f_c_string interface, which is an aliases of convert_f_string, because f_c_string() is now also a function defined in the Fortran 2023 standard. See Issue #294 and PR #295.
  • In cmake/DefaultFlags.cmake: the GFortran flags were reviewed and simplified. In DEBUG mode, -std=f2008 -pedantic were removed and also -Wtabs which is already implied by -Wall. And -pthread is already included into the GTK flags.

Fixed

  • cmake/DefaultFlags.cmake: the GNU ld -rdynamic option is now passed to all Fortran compilers in UNIX-like systems. Fixes the Issue #236: "With Intel ifort/ifx, gtkbuilder, gtkbuilder2 and gtkf-sketcher could not open gtkbuilder.glade".
  • gtk-fortran can now be used as an external library via CMake FetchContent. Fixes the Issue #301 related to the current binary and source dirs.

gtk-fortran 4.8.0

25 Apr 09:52
6f73180

Choose a tag to compare

This release offers interfaces to GTK 4.18 and GLib 2.84 (generated under Fedora 42 with GTK 4.18.4 and GLib 2.84.1).

Added

  • In examples/tests_gtk_sup.f90: added test_gvalue_routines().

Changed

  • CMake 3.10 is now required (it was released in Nov. 2017).

Fixed

  • src/gtk-sup.f90: the GValue structure is now defined as three 64 bits variables. It fixes the Windows issue #244. See the discussion in the gtk3 branch PR. Regression tests have been added in examples/tests_gtk_sup.f90.

gtk-fortran 3.24.49

20 Apr 09:08
2b5ace5

Choose a tag to compare

Offers Fortran interfaces to the latests GTK 3.24.49 and GLib 2.84.1 (generated with Fedora 42).

Added

  • examples/tests_gtk_sup.f90 backported from gtk4 branch.
  • src/gtk-sup.f90: the fdate() function was backported from gtk4 branch.

Changed

  • CMake 3.10 is now required (it was released in Nov. 2017).
  • Latest cfwrapper backported from gtk4 branch.

Fixed

  • cfwrapper:
    • the interfaces of 98 functions are fixed (Issue #290). In cfwrapper/fortran.py, the block treating the enums was not placed at the end of the iso_c_binding() function: first, C pointers toward enums were not recognized as pointers, and secondly enums having a name included in a GTK type name could cause bad bindings (for example GtkSelectionMode and GtkSelectionModel).
    • Variant and GVariantType types are now correctly used when declared with a double * in C. Issue #289.
  • gtk-sup.f90:
    • the GValue structure is now defined as three 64 bits variables. It fixes the Windows issue #244. See the discussion in the PR. Regression tests have been added in examples/tests_gtk_sup.f90.
    • Four dialog icons names updated: PR #293
  • src/gtk_hl_dialog.f90: if providing artists or documenters, the cptr length was calculated from the numbers of authors.

gtk-fortran 4.7.1

04 Mar 13:21
22b0900

Choose a tag to compare

Fixed

  • cfwrapper: the interfaces of 98 functions are fixed (Issue #290). In cfwrapper/fortran.py, the block treating the enums was not placed at the end of the iso_c_binding() function: first, C pointers toward enums were not recognized as pointers, and secondly enums having a name included in a GTK type name could cause bad bindings (for example GtkSelectionMode and GtkSelectionModel).

gtk-fortran 4.7.0

05 Nov 10:47
298f0f0

Choose a tag to compare

This release offers interfaces to GTK 4.16 and GLib 2.82 (generated under Fedora 41 with GTK 4.16.3 and GLib 2.82.2).

Added

  • src/gtk-hl-dialog.f90: can now manage the logo via gtk_about_dialog_set_logo(). Contributed by Florian Ober.
  • cfwrapper.py: the gtk3 branch now also uses gtkenums-auto.in and gtk-auto.in, following the fpm feature backport.

Fixed

  • cfwrapper: Variant and GVariantType types are now correctly used when declared with a double * in C. Issue #289.
  • src/gtk-hl-dialog.f90: if providing artists or documenters, the cptr length was erroneously calculated from the number of authors. Contributed by Florian Ober.

gtk-fortran 4.6.0

19 Apr 08:10
d5a6c08

Choose a tag to compare

This release offers interfaces to GTK 4.14 and GLib 2.80 (generated under Fedora 40 with GTK 4.14.2 and GLib 2.80.0).

Added

  • The examples/bazaar.f90 program plays a little melody demo_sound.ogg when you click on Button1, by using a GtkMediaStream. The GTK 4 GStreamer backend must be installed (libgtk-4-media-gstreamer package in Ubuntu). It was tested with .ogg, .wav and .mid files.

Changed

  • cmake/cmake_uninstall.cmake.in: improved the code layout.

Fixed

  • src/gtk-fortran.pc.in: the line Libs: was modified to fix a problem with the macOS linker (which is not GNU ld and does not accept the -R option).

gtk-fortran 4.5.0

08 Nov 15:38
1691954

Choose a tag to compare

This release offers Fortran interfaces to GTK 4.12 and GLib 2.78.

gtk-fortran 4.4.1

31 Aug 09:39
08b250b

Choose a tag to compare

Added

  • New types (enums) in src/cfwrapper/scan_types_and_enums.py, useful for other GNOME libraries.
  • Initializes types_enums.gtk_funptr list in src/cfwrapper/scan_types_and_enums.py with a few funptr types, and removes possibly duplicated ones.
  • examples/menubar.f90: an accelerator <Ctrl>q was added for quitting the application.

Changed

  • examples/bazaar.f90: modified the font and background of the textview.

Fixed

  • src/cfwrapper/fortran.py: declarations like const char * const * must be declared in Fortran as type(c_ptr), dimension(*) ::, as they are arrays of C strings (previously, only ** was considered).

gtk-fortran 4.4.0

02 May 07:27
00f5976

Choose a tag to compare

This release offers interfaces to GTK 4.10.3 and GLib 2.76.2.

Added

  • examples/cairo-tests.f90 now draws the circle period-2 bulb and the main cardioid over the Mandelbrot set. More text is also put in the figure.
  • examples/cairo-basics.f90 now also saves the drawing in a SVG file and a PDF file.
  • screenshots/hl_cairo_viewer-fedora38.png: showing "modern Fortran" written with a New Alphabet font.
  • a new example has been added in the gtk-fortran-extra repository (MIT license). It is a gtk-fortran application to encode a text using Peter Saville's color code.
  • src/test_extra.sh: an interactive script to test projects gtk-fortran-extra and gtkzero_fpm before gtk-fortran release.
  • src/cfwrapper/ can be used more easily with other C libraries (see the tutorial):
    • added a -l option to add the directories containing the header files and a -m option to add the corresponding Fortran modules.
    • added a -s option to add a suffix to the functions names.
  • src/cfwrapper/run_tests.py: for testing some functions of the cfwrapper.
  • src/scan_types_and_enums.py: the pass 1 was refactored in that class.
  • src/gtk-fortran_types.csv: list of all the GLib / GTK types used in the prototypes of the C functions. Generated by the cfwrapper/cfwrapper.py script.
  • src/gtk-fortran_funptr.csv: list of all the funptr types used in the prototypes of the C functions. Generated by the cfwrapper/cfwrapper.py script, which will also print the number of funptr in its statistics.
  • LICENSE_EXCEPTION: the text of the GCC Runtime Library Exception, version 3.1. Note that this exception was chosen in 2011 and was already cited in the header of each source file with the URL of the GNU licenses. Putting the text in the repository is a better practice.

Changed

  • logo/: the blue color of the GTK cube, whose HSL (hue, saturation, lightness) values are (211, 49, 63), was replaced by a purple whose hue (270) is the same as the hue of the Fortran logo.
  • src/build.sh is now an interactive script proposing to build, test and install gtk-fortran. It uses the default Fortran compiler, then build and test with Intel ifx.
  • src/cfwrapper/cleaning.py: code cleaning and improved layout.

Fixed

  • examples/hl_cairo_viewer.f90: the image is now redrawn when the window is resized. And the "Next>" button becomes sensitive when a second file is added.
  • examples/menubar.f90: the compilation was failing on 32 bits systems, due to an int64 kind used instead of c_size_t (for gssize).
  • examples/gio_demo.f90: a _c_size_t suffix added (for a gssize).
  • implicit none was added in all C/Fortran interfaces, as the implicit none of the modules do no apply to the interfaces blocks. It will harden the code by allowing the compiler to verify more deeply the coherence of the interfaces generated by the Python wrapper.

gtk-fortran 4.3.0

10 Nov 07:36
b90cd9c

Choose a tag to compare

  • Fortran interfaces to GTK 4.8.2 and GLib 2.74.1.
  • Various bug fixes, minor improvements, code cleanup (see the CHANGELOG.md file).