From cc0740148e6ba0da9e30608deea2aa13078c2584 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Mon, 27 Aug 2018 19:58:56 +0200 Subject: [PATCH] port-to-gtk3: Switch to Gtkmm3 (#7) Switch to Gtkmm3 in configure.ac. Require version 3.0.0. Also update the build instructions in README and the package list in .gitlab-ci.yml. Starting from version 3.18.0 Gtkmm requires C++11 compilation [1][2][3]. Add a check for Gtkmm >= 3.18.0 in configure.ac and enable C++11 compilation accordingly. References: [1] Gtkmm 3.18.1 NEWS "Changes in 3.18 ... Use, and require C++11, ..." https://gitlab.gnome.org/GNOME/gtkmm/blob/3.18.1/NEWS#L35 [2] Murray's Blog - "gtkmm now uses C++11" https://www.murrayc.com/permalink/2015/07/31/gtkmm-now-uses-c11 [3] Murray's Blog - "gtkmm 3.18 and glibmm 2.46" https://www.murrayc.com/permalink/2015/09/25/gtkmm-3-18-and-glibmm-2-46 Closes #7 - Port to Gtk3 --- .gitlab-ci.yml | 4 ++-- README | 8 ++++---- configure.ac | 11 ++++++++++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6aa8e03..3bba2937 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ stages: before_script: - yum update -y - yum install -y which gnome-common gnome-doc-utils glib2-devel intltool - gcc-c++ libuuid-devel parted-devel gtkmm24-devel make + gcc-c++ libuuid-devel parted-devel gtkmm30-devel make polkit file rarian-compat .ubuntu_image_template: &ubuntu_image_definition @@ -17,7 +17,7 @@ stages: before_script: - apt-get update - apt-get install -y gnome-common gnome-doc-utils libglib2.0-dev-bin - uuid-dev libparted-dev libgtkmm-2.4-dev make + uuid-dev libparted-dev libgtkmm-3.0-dev make policykit-1 rarian-compat .build_stage_template: &build_stage_definition diff --git a/README b/README index 4a3abcd9..aa1bb4d1 100644 --- a/README +++ b/README @@ -86,7 +86,7 @@ b. Building from Source e2fsprogs parted gnome-common - gtkmm24 + gtkmm3 gettext gnome-doc-utils - required if help documentation is to be built @@ -96,11 +96,11 @@ b. Building from Source sudo apt-get build-dep gparted Or; sudo apt-get install build-essential e2fsprogs uuid uuid-dev \ - gnome-common libparted-dev libgtkmm-2.4-dev \ + gnome-common libparted-dev libgtkmm-3.0-dev \ libdevmapper-dev gnome-doc-utils docbook-xml On Fedora, you will need to run (as root); - yum install gtkmm24-devel parted-devel e2fsprogs-devel gettext \ + yum install gtkmm30-devel parted-devel e2fsprogs-devel gettext \ 'perl(XML::Parser)' desktop-file-utils libuuid-devel \ gnome-doc-utils docbook-dtds intltool gnome-common \ gcc-c++ @@ -109,7 +109,7 @@ b. Building from Source On openSUSE, these dependencies may be obtained by running the following commands; sudo zypper install automake autoconf make gnome-common \ - libuuid-devel parted-devel gtkmm2-devel \ + libuuid-devel parted-devel gtkmm3-devel \ gnome-doc-utils-devel docbook-xsl-stylesheets sudo zypper install -t pattern devel_c_c++ diff --git a/configure.ac b/configure.ac index bd5d145c..9c11ab79 100644 --- a/configure.ac +++ b/configure.ac @@ -199,7 +199,7 @@ AC_SUBST([GTHREAD_LIBS]) AC_SUBST([GTHREAD_CFLAGS]) dnl GTKMM -PKG_CHECK_MODULES([GTKMM], [gtkmm-2.4 >= 2.24.0]) +PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0 >= 3.0.0]) AC_SUBST([GTKMM_LIBS]) AC_SUBST([GTKMM_CFLAGS]) @@ -227,6 +227,15 @@ PKG_CHECK_EXISTS( ], [AC_MSG_RESULT([no])] ) +dnl Check for gtkmm >= 3.18.0 which requires C++11 compilation. +AC_MSG_CHECKING([for gtkmm >= 3.18.0 which requires C++11 compilation]) +PKG_CHECK_EXISTS( + [gtkmm-3.0 >= 3.18.0], + [need_cxx_compile_stdcxx_11=yes + AC_MSG_RESULT([yes]) + ], + [AC_MSG_RESULT([no])] +) dnl Enable C++11 compilation only if required. if test "x$need_cxx_compile_stdcxx_11" = xyes; then AX_CXX_COMPILE_STDCXX_11()