Branch: refs/heads/master Author: Matthew Brush matt@geany.org Committer: Matthew Brush matt@geany.org Date: Sun, 04 Oct 2020 12:31:01 UTC Commit: d065c5098508f660d5f8ac16700d1c5a3e4e653c https://github.com/geany/geany/commit/d065c5098508f660d5f8ac16700d1c5a3e4e65...
Log Message: ----------- Initial pass at remove GTK+2
Updating the build system and some of the conditional code. More to come.
Modified Paths: -------------- HACKING README configure.ac data/Makefile.am src/gtkcompat.h src/plugindata.h src/stash.c
Modified: HACKING 3 lines changed, 0 insertions(+), 3 deletions(-) =================================================================== @@ -791,9 +791,6 @@ Building Plugins The geany-plugins autotools script automatically detects the installed system Geany and builds the plugins against that.
-Plugins will build with either GTK2 or GTK3, whichever the detected -Geany was built with. - To use plugins with a development version of Geany built with a different prefix, the plugins will need to be compiled against that version if the ABI has changed.
Modified: README 8 lines changed, 4 insertions(+), 4 deletions(-) =================================================================== @@ -49,10 +49,10 @@ Installation from sources
Requirements ++++++++++++ -For compiling Geany yourself, you will need the GTK2 (>= 2.24) or -GTK3 libraries and header files. You will also need its dependency libraries -and header files, such as Pango, Glib and ATK. All these files are -available at https://www.gtk.org. +For compiling Geany yourself, you will need the GTK3 libraries and +header files. You will also need its dependency libraries and header +files, such as Pango, Glib and ATK. All these files are available at +https://www.gtk.org.
Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler is also needed for the required Scintilla library included. The
Modified: configure.ac 29 lines changed, 4 insertions(+), 25 deletions(-) =================================================================== @@ -71,38 +71,17 @@ AC_CHECK_DECLS([_NSGetEnviron],,,[[#include <crt_externs.h>]]) GEANY_CHECK_REVISION([dnl force debug mode for a VCS working copy CFLAGS="-g -DGEANY_DEBUG $CFLAGS"])
-# GTK version check -AC_ARG_ENABLE([gtk2], - [AS_HELP_STRING([--enable-gtk2], - [compile against deprecated GTK2 [default=no]])], - [enable_gtk2=$enableval], - [enable_gtk2=no]) - -gtk2_package=gtk+-2.0 -gtk2_min_version=2.24 -gtk3_package=gtk+-3.0 -gtk3_min_version=3.0 - -AS_IF([test "x$enable_gtk2" = "xyes"], - [gtk_package=$gtk2_package - gtk_min_version=$gtk2_min_version], - [gtk_package=$gtk3_package - gtk_min_version=$gtk3_min_version]) - -AM_CONDITIONAL([GTK3], [test "x$gtk_package" = "x$gtk3_package"]) - # GTK/GLib/GIO checks -gtk_modules="$gtk_package >= $gtk_min_version glib-2.0 >= 2.32" +gtk_modules="gtk+-3.0 >= 3.0 glib-2.0 >= 2.32" gtk_modules_private="gio-2.0 >= 2.32 gmodule-no-export-2.0" PKG_CHECK_MODULES([GTK], [$gtk_modules $gtk_modules_private]) AC_SUBST([DEPENDENCIES], [$gtk_modules]) AS_VAR_APPEND([GTK_CFLAGS], [" -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32"]) -dnl Disable all GTK deprecations on 3.x so long as we want to keep 2.x support and only require 3.0. -dnl No need on 2.x as we target the latest version. -AM_COND_IF([GTK3], [AS_VAR_APPEND([GTK_CFLAGS], [" -DGDK_DISABLE_DEPRECATION_WARNINGS"])]) +dnl Disable all GTK deprecations +AS_VAR_APPEND([GTK_CFLAGS], [" -DGDK_DISABLE_DEPRECATION_WARNINGS"]) AC_SUBST([GTK_CFLAGS]) AC_SUBST([GTK_LIBS]) -GTK_VERSION=`$PKG_CONFIG --modversion $gtk_package` +GTK_VERSION=`$PKG_CONFIG --modversion gtk+-3.0` AC_SUBST([GTK_VERSION]) GEANY_STATUS_ADD([Using GTK version], [${GTK_VERSION}]) # GTHREAD checks
Modified: data/Makefile.am 5 lines changed, 0 insertions(+), 5 deletions(-) =================================================================== @@ -119,12 +119,7 @@ nobase_dist_pkgdata_DATA = \ ui_toolbar.xml \ geany.glade
-if GTK3 nobase_dist_pkgdata_DATA += \ geany-3.0.css \ geany-3.20.css \ geany.css -else -nobase_dist_pkgdata_DATA += geany.gtkrc -endif -
Modified: src/gtkcompat.h 81 lines changed, 5 insertions(+), 76 deletions(-) =================================================================== @@ -18,86 +18,15 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-/* Compatibility macros to support older GTK+ versions */ +/* Compatibility macros to support older GTK+ versions + * + * TODO: This file can be removed once the code is updated to use GTK3 keysyms. + */
#ifndef GTK_COMPAT_H #define GTK_COMPAT_H 1
#include <gtk/gtk.h> -#if GTK_CHECK_VERSION(3, 0, 0) -# include <gdk/gdkkeysyms-compat.h> -#endif - -G_BEGIN_DECLS - - -/* GtkComboBoxText */ -/* This is actually available in GTK 2.24, but we expose GtkComboBoxText in the - * API so we don't want the type to change for no good reason (although this - * should probably be harmless since it's only a derivated type). However, since - * a plugin needs to be rebuilt and tuned to work with GTK3 we don't mind that - * a type changes between the GTK2 and GTK3 version */ -#if ! GTK_CHECK_VERSION(3, 0, 0) -/* undef those not to get warnings about redefinitions under GTK 2.24 */ -# undef GTK_COMBO_BOX_TEXT -# undef GTK_COMBO_BOX_TEXT_CLASS -# undef GTK_COMBO_BOX_TEXT_GET_CLASS -# undef GTK_IS_COMBO_BOX_TEXT -# undef GTK_IS_COMBO_BOX_TEXT_CLASS -# undef GTK_TYPE_COMBO_BOX_TEXT - -# define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX -# define GTK_COMBO_BOX_TEXT_CLASS GTK_COMBO_BOX_CLASS -# define GTK_COMBO_BOX_TEXT_GET_CLASS GTK_COMBO_BOX_GET_CLASS -# define GTK_IS_COMBO_BOX_TEXT GTK_IS_COMBO_BOX -# define GTK_IS_COMBO_BOX_TEXT_CLASS GTK_IS_COMBO_BOX_CLASS -# define GTK_TYPE_COMBO_BOX_TEXT GTK_TYPE_COMBO_BOX -# define GtkComboBoxText GtkComboBox -# define gtk_combo_box_text_new gtk_combo_box_new_text -# define gtk_combo_box_text_new_with_entry gtk_combo_box_entry_new_text -# define gtk_combo_box_text_append_text gtk_combo_box_append_text -# define gtk_combo_box_text_insert_text gtk_combo_box_insert_text -# define gtk_combo_box_text_prepend_text gtk_combo_box_prepend_text -# define gtk_combo_box_text_remove gtk_combo_box_remove_text -# define gtk_combo_box_text_get_active_text gtk_combo_box_get_active_text -#endif - -/* GtkWidget */ -#if ! GTK_CHECK_VERSION(3, 0, 0) -# define gtk_widget_get_allocated_height(widget) (((GtkWidget *) (widget))->allocation.height) -# define gtk_widget_get_allocated_width(widget) (((GtkWidget *) (widget))->allocation.width) -#endif - - -/* Mappings below only prevent some deprecation warnings on GTK3 for things - * that didn't exist on GTK2. That's not future-proof. */ -#if GTK_CHECK_VERSION(3, 0, 0) -/* Gtk[VH]Box */ -# define compat_gtk_box_new(orientation, homogeneous, spacing) \ - ((GtkWidget *)g_object_new(GTK_TYPE_BOX, \ - "orientation", (orientation), \ - "homogeneous", (homogeneous), \ - "spacing", (spacing), \ - NULL)) -# define gtk_vbox_new(homogeneous, spacing) \ - compat_gtk_box_new(GTK_ORIENTATION_VERTICAL, (homogeneous), (spacing)) -# define gtk_hbox_new(homogeneous, spacing) \ - compat_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, (homogeneous), (spacing)) -/* Gtk[VH]ButtonBox */ -# define gtk_vbutton_box_new() gtk_button_box_new(GTK_ORIENTATION_VERTICAL) -# define gtk_hbutton_box_new() gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL) -/* Gtk[VH]Separator */ -# define gtk_vseparator_new() gtk_separator_new(GTK_ORIENTATION_VERTICAL) -# define gtk_hseparator_new() gtk_separator_new(GTK_ORIENTATION_HORIZONTAL) -/* Gtk[VH]Paned */ -# define gtk_vpaned_new() gtk_paned_new(GTK_ORIENTATION_VERTICAL) -# define gtk_hpaned_new() gtk_paned_new(GTK_ORIENTATION_HORIZONTAL) -/* Gtk[VH]Scrollbar */ -# define gtk_vscrollbar_new(adj) gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, (adj)) -# define gtk_hscrollbar_new(adj) gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, (adj)) -#endif - - -G_END_DECLS +#include <gdk/gdkkeysyms-compat.h>
#endif /* GTK_COMPAT_H */
Modified: src/plugindata.h 11 lines changed, 4 insertions(+), 7 deletions(-) =================================================================== @@ -60,13 +60,10 @@ G_BEGIN_DECLS */ #define GEANY_API_VERSION 239
-/* hack to have a different ABI when built with GTK3 because loading GTK2-linked plugins - * with GTK3-linked Geany leads to crash */ -#if GTK_CHECK_VERSION(3, 0, 0) -# define GEANY_ABI_SHIFT 8 -#else -# define GEANY_ABI_SHIFT 0 -#endif + +/* when gtk2 and gtk3 were both supported at the same time this was used + * to prevent loading gtk2 plugins with gtk3 Geany or vice versa. */ +#define GEANY_ABI_SHIFT 8 /** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. * Changing this forces all plugins to be recompiled before Geany can load them. */
Modified: src/stash.c 10 lines changed, 3 insertions(+), 7 deletions(-) =================================================================== @@ -83,12 +83,9 @@ #include <stdlib.h> /* only for atoi() */
-/* GTK3 removed ComboBoxEntry, but we need a value to differentiate combo box with and - * without entries, and it must not collide with other GTypes */ -#ifdef GTK_TYPE_COMBO_BOX_ENTRY -# define TYPE_COMBO_BOX_ENTRY GTK_TYPE_COMBO_BOX_ENTRY -#else /* !GTK_TYPE_COMBO_BOX_ENTRY */ -# define TYPE_COMBO_BOX_ENTRY get_combo_box_entry_type() +#define TYPE_COMBO_BOX_ENTRY get_combo_box_entry_type() + + static GType get_combo_box_entry_type(void) { static volatile gsize type = 0; @@ -100,7 +97,6 @@ static GType get_combo_box_entry_type(void) } return type; } -#endif /* !GTK_TYPE_COMBO_BOX_ENTRY */
struct StashPref
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).