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
This commit is contained in:
Luca Bacci 2018-08-27 19:58:56 +02:00 committed by Mike Fleetwood
parent 5379352766
commit cc0740148e
3 changed files with 16 additions and 7 deletions

View File

@ -8,7 +8,7 @@ stages:
before_script: before_script:
- yum update -y - yum update -y
- yum install -y which gnome-common gnome-doc-utils glib2-devel intltool - 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 polkit file rarian-compat
.ubuntu_image_template: &ubuntu_image_definition .ubuntu_image_template: &ubuntu_image_definition
@ -17,7 +17,7 @@ stages:
before_script: before_script:
- apt-get update - apt-get update
- apt-get install -y gnome-common gnome-doc-utils libglib2.0-dev-bin - 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 policykit-1 rarian-compat
.build_stage_template: &build_stage_definition .build_stage_template: &build_stage_definition

8
README
View File

@ -86,7 +86,7 @@ b. Building from Source
e2fsprogs e2fsprogs
parted parted
gnome-common gnome-common
gtkmm24 gtkmm3
gettext gettext
gnome-doc-utils - required if help documentation is to be built 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 sudo apt-get build-dep gparted
Or; Or;
sudo apt-get install build-essential e2fsprogs uuid uuid-dev \ 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 libdevmapper-dev gnome-doc-utils docbook-xml
On Fedora, you will need to run (as root); 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 \ 'perl(XML::Parser)' desktop-file-utils libuuid-devel \
gnome-doc-utils docbook-dtds intltool gnome-common \ gnome-doc-utils docbook-dtds intltool gnome-common \
gcc-c++ gcc-c++
@ -109,7 +109,7 @@ b. Building from Source
On openSUSE, these dependencies may be obtained by running the On openSUSE, these dependencies may be obtained by running the
following commands; following commands;
sudo zypper install automake autoconf make gnome-common \ 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 gnome-doc-utils-devel docbook-xsl-stylesheets
sudo zypper install -t pattern devel_c_c++ sudo zypper install -t pattern devel_c_c++

View File

@ -199,7 +199,7 @@ AC_SUBST([GTHREAD_LIBS])
AC_SUBST([GTHREAD_CFLAGS]) AC_SUBST([GTHREAD_CFLAGS])
dnl GTKMM 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_LIBS])
AC_SUBST([GTKMM_CFLAGS]) AC_SUBST([GTKMM_CFLAGS])
@ -227,6 +227,15 @@ PKG_CHECK_EXISTS(
], ],
[AC_MSG_RESULT([no])] [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. dnl Enable C++11 compilation only if required.
if test "x$need_cxx_compile_stdcxx_11" = xyes; then if test "x$need_cxx_compile_stdcxx_11" = xyes; then
AX_CXX_COMPILE_STDCXX_11() AX_CXX_COMPILE_STDCXX_11()