From a97d5a060a534a3c658578e7f14ab43556db93ca Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 30 Dec 2021 16:19:46 +0100 Subject: [PATCH] Support glibmm 2.68 Support glibmm 2.68 which has been released one year ago and is the first stable release in the glibmm-2.68 ABI series: https://gitlab.gnome.org/GNOME/glibmm/-/blob/2.68.2/NEWS C++17 support is mandatory with glibmm 2.68 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet] --- CMakeLists.txt | 23 +++++++++++++++++++---- INSTALL | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7791b1b1..58a9cf92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,14 @@ add_subdirectory(manual) #------------------------------------------------------------------------------- list(APPEND PKGDEPS glib-2.0>=2.28.0) -list(APPEND PKGDEPS glibmm-2.4>=2.28.0) + +set(LIBSR_GLIBMM "glibmm-2.4>=2.28.0") +find_package(PkgConfig) +pkg_check_modules(LIBSRGLIBMM24 ${LIBSR_GLIBMM}) +if(NOT LIBSRGLIBMM24_FOUND) + set(LIBSR_GLIBMM "glibmm-2.68>=2.68.0") +endif() +list(APPEND PKGDEPS ${LIBSR_GLIBMM}) if(ENABLE_FLOW) list(APPEND PKGDEPS gstreamermm-1.0>=1.8.0) @@ -93,7 +100,6 @@ if(ANDROID) list(APPEND PKGDEPS libsigrokandroidutils>=0.1.0) endif() -find_package(PkgConfig) pkg_check_modules(LIBSRCXX ${LIBSR_CXX_BINDING}) if(NOT LIBSRCXX_FOUND OR NOT LIBSRCXX_VERSION) message(FATAL_ERROR "libsigrok C++ bindings missing, check libsigrok's 'configure' output (missing dependencies?)") @@ -225,7 +231,11 @@ memaccess_check_unaligned_le(HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS) set(PV_TITLE PulseView) set(PV_VERSION_STRING "0.5.0") -set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.4_VERSION}) +if(LIBSRGLIBMM24_FOUND) + set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.4_VERSION}) +else() + set(PV_GLIBMM_VERSION ${PKGDEPS_glibmm-2.68_VERSION}) +endif() include(GetGitRevisionDescription) @@ -486,7 +496,12 @@ qt5_add_resources(pulseview_RESOURCES_RCC ${CMAKE_BINARY_DIR}/translations.qrc) add_definitions(-DQT_NO_KEYWORDS) add_definitions(-D__STDC_LIMIT_MACROS) add_definitions(-Wall -Wextra) -add_definitions(-std=c++11) +if(LIBSRGLIBMM24_FOUND) + add_definitions(-std=c++11) +else() + # glibmm-2.68 reuires c++17 + add_definitions(-std=c++17) +endif() add_definitions(-DBOOST_MATH_DISABLE_FLOAT128=1) if(WIN32) add_definitions(-Wa,-mbig-obj -O3) diff --git a/INSTALL b/INSTALL index da89be8d..8003fcfb 100644 --- a/INSTALL +++ b/INSTALL @@ -14,7 +14,7 @@ Requirements - pkg-config >= 0.22 - cmake >= 2.8.12 - libglib >= 2.28.0 - - glibmm-2.4 (>= 2.28.0) + - glibmm-2.4 (>= 2.28.0) or glibmm-2.68 (>= 2.68.0) - Qt5 (>= 5.3), including the following components: - Qt5Core, Qt5Gui, Qt5Widgets, Qt5Svg, Qt5LinguistTools - Qt translation package (optional; needed at runtime, not build time) -- 2.34.1