Releases: vmagnin/gtk-fortran
Releases · vmagnin/gtk-fortran
gtk-fortran 4.9.0
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 functionfdate()was renamedfmt_date()to avoid confusion with the GNU intrinsic subroutine.
Removed
- In
src/gtk-sup.f90: removed thef_c_stringinterface, which is an aliases ofconvert_f_string, becausef_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 -pedanticwere removed and also-Wtabswhich is already implied by-Wall. And-pthreadis already included into the GTK flags.
Fixed
cmake/DefaultFlags.cmake: the GNU ld-rdynamicoption 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
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: addedtest_gvalue_routines().
Changed
- CMake 3.10 is now required (it was released in Nov. 2017).
Fixed
src/gtk-sup.f90: theGValuestructure 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 inexamples/tests_gtk_sup.f90.
gtk-fortran 3.24.49
Offers Fortran interfaces to the latests GTK 3.24.49 and GLib 2.84.1 (generated with Fedora 42).
Added
examples/tests_gtk_sup.f90backported from gtk4 branch.src/gtk-sup.f90: thefdate()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 theiso_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 exampleGtkSelectionModeandGtkSelectionModel). - Variant and GVariantType types are now correctly used when declared with a double
*in C. Issue #289.
- the interfaces of 98 functions are fixed (Issue #290). In
gtk-sup.f90:- the
GValuestructure 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 inexamples/tests_gtk_sup.f90. - Four dialog icons names updated: PR #293
- the
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
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 theiso_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 exampleGtkSelectionModeandGtkSelectionModel).
gtk-fortran 4.7.0
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 viagtk_about_dialog_set_logo(). Contributed by Florian Ober.cfwrapper.py: the gtk3 branch now also usesgtkenums-auto.inandgtk-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, thecptrlength was erroneously calculated from the number of authors. Contributed by Florian Ober.
gtk-fortran 4.6.0
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.f90program plays a little melodydemo_sound.oggwhen you click on Button1, by using a GtkMediaStream. The GTK 4 GStreamer backend must be installed (libgtk-4-media-gstreamerpackage in Ubuntu). It was tested with.ogg,.wavand.midfiles.
Changed
cmake/cmake_uninstall.cmake.in: improved the code layout.
Fixed
src/gtk-fortran.pc.in: the lineLibs:was modified to fix a problem with the macOS linker (which is not GNU ld and does not accept the-Roption).
gtk-fortran 4.5.0
This release offers Fortran interfaces to GTK 4.12 and GLib 2.78.
gtk-fortran 4.4.1
Added
- New types (enums) in
src/cfwrapper/scan_types_and_enums.py, useful for other GNOME libraries. - Initializes
types_enums.gtk_funptrlist insrc/cfwrapper/scan_types_and_enums.pywith a few funptr types, and removes possibly duplicated ones. examples/menubar.f90: an accelerator<Ctrl>qwas added for quitting the application.
Changed
examples/bazaar.f90: modified the font and background of the textview.
Fixed
src/cfwrapper/fortran.py: declarations likeconst char * const *must be declared in Fortran astype(c_ptr), dimension(*) ::, as they are arrays of C strings (previously, only**was considered).
gtk-fortran 4.4.0
This release offers interfaces to GTK 4.10.3 and GLib 2.76.2.
Added
examples/cairo-tests.f90now 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.f90now 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
-loption to add the directories containing the header files and a-moption to add the corresponding Fortran modules. - added a
-soption to add a suffix to the functions names.
- added a
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 thecfwrapper/cfwrapper.pyscript.src/gtk-fortran_funptr.csv: list of all thefunptrtypes used in the prototypes of the C functions. Generated by thecfwrapper/cfwrapper.pyscript, which will also print the number offunptrin 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.shis 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 anint64kind used instead ofc_size_t(forgssize).examples/gio_demo.f90: a_c_size_tsuffix added (for agssize).implicit nonewas added in all C/Fortran interfaces, as theimplicit noneof 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
- Fortran interfaces to GTK 4.8.2 and GLib 2.74.1.
- Various bug fixes, minor improvements, code cleanup (see the
CHANGELOG.mdfile).