1From a97d5a060a534a3c658578e7f14ab43556db93ca Mon Sep 17 00:00:00 2001
2From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3Date: Thu, 30 Dec 2021 16:19:46 +0100
4Subject: [PATCH] Support glibmm 2.68
5
6Support glibmm 2.68 which has been released one year ago and is the
7first stable release in the glibmm-2.68 ABI series:
8https://gitlab.gnome.org/GNOME/glibmm/-/blob/2.68.2/NEWS
9
10C++17 support is mandatory with glibmm 2.68
11
12Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
13[Upstream status: not sent yet]
14---
15 CMakeLists.txt | 23 +++++++++++++++++++----
16 INSTALL        |  2 +-
17 2 files changed, 20 insertions(+), 5 deletions(-)
18
19diff --git a/CMakeLists.txt b/CMakeLists.txt
20index 7791b1b1..58a9cf92 100644
21--- a/CMakeLists.txt
22+++ b/CMakeLists.txt
23@@ -75,7 +75,14 @@ add_subdirectory(manual)
24 #-------------------------------------------------------------------------------
25
26 list(APPEND PKGDEPS glib-2.0>=2.28.0)
27-list(APPEND PKGDEPS glibmm-2.4>=2.28.0)
28+
29+set(LIBSR_GLIBMM "glibmm-2.4>=2.28.0")
30+find_package(PkgConfig)
31+pkg_check_modules(LIBSRGLIBMM24 ${LIBSR_GLIBMM})
32+if(NOT LIBSRGLIBMM24_FOUND)
33+	set(LIBSR_GLIBMM "glibmm-2.68>=2.68.0")
34+endif()
35+list(APPEND PKGDEPS ${LIBSR_GLIBMM})
36
37 if(ENABLE_FLOW)
38 	list(APPEND PKGDEPS gstreamermm-1.0>=1.8.0)
39@@ -93,7 +100,6 @@ if(ANDROID)
40 	list(APPEND PKGDEPS libsigrokandroidutils>=0.1.0)
41 endif()
42
43-find_package(PkgConfig)
44 pkg_check_modules(LIBSRCXX ${LIBSR_CXX_BINDING})
45 if(NOT LIBSRCXX_FOUND OR NOT LIBSRCXX_VERSION)
46 	message(FATAL_ERROR "libsigrok C++ bindings missing, check libsigrok's 'configure' output (missing dependencies?)")
47@@ -225,7 +231,11 @@ memaccess_check_unaligned_le(HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS)
48 set(PV_TITLE PulseView)
49 set(PV_VERSION_STRING "0.5.0")
50
51-set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.4_VERSION})
52+if(LIBSRGLIBMM24_FOUND)
53+	set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.4_VERSION})
54+else()
55+	set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.68_VERSION})
56+endif()
57
58 include(GetGitRevisionDescription)
59
60@@ -486,7 +496,12 @@ qt5_add_resources(pulseview_RESOURCES_RCC ${CMAKE_BINARY_DIR}/translations.qrc)
61 add_definitions(-DQT_NO_KEYWORDS)
62 add_definitions(-D__STDC_LIMIT_MACROS)
63 add_definitions(-Wall -Wextra)
64-add_definitions(-std=c++11)
65+if(LIBSRGLIBMM24_FOUND)
66+	add_definitions(-std=c++11)
67+else()
68+	# glibmm-2.68 reuires c++17
69+	add_definitions(-std=c++17)
70+endif()
71 add_definitions(-DBOOST_MATH_DISABLE_FLOAT128=1)
72 if(WIN32)
73 	add_definitions(-Wa,-mbig-obj -O3)
74diff --git a/INSTALL b/INSTALL
75index da89be8d..8003fcfb 100644
76--- a/INSTALL
77+++ b/INSTALL
78@@ -14,7 +14,7 @@ Requirements
79  - pkg-config >= 0.22
80  - cmake >= 2.8.12
81  - libglib >= 2.28.0
82- - glibmm-2.4 (>= 2.28.0)
83+ - glibmm-2.4 (>= 2.28.0) or glibmm-2.68 (>= 2.68.0)
84  - Qt5 (>= 5.3), including the following components:
85     - Qt5Core, Qt5Gui, Qt5Widgets, Qt5Svg, Qt5LinguistTools
86     - Qt translation package (optional; needed at runtime, not build time)
87--
882.34.1
89
90