From 23d2246e0f6ebfc69232ab29b6c6325d8009d1f7 Mon Sep 17 00:00:00 2001 From: Robert Edmonds Date: Sun, 2 Jul 2023 19:48:17 -0400 Subject: [PATCH] configure.ac: Require C++17 when building against protobuf >= 4.22.0 It's unclear from looking at the online protobuf documentation whether C++14 or C++17 is now required when building against newer versions of protobuf (or perhaps I'm looking in the wrong place), but experimentally it did not work for me with C++14. This commit rewrites the versioned PKG_CHECK_MODULES checks in configure.ac to enforce the following policies: * Require protobuf >= 2.6.0. * On protobuf >= 3.0.0, require C++11. * On protobuf >= 4.22.0, require C++17. --- configure.ac | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 94d01dc..fa024b6 100644 --- a/configure.ac +++ b/configure.ac @@ -76,12 +76,26 @@ AC_ARG_ENABLE([protoc], if test "x$enable_protoc" != "xno"; then AC_LANG_PUSH([C++]) - AX_CXX_COMPILE_STDCXX(11, noext, mandatory) - - PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], - [proto3_supported=yes], - [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])] - ) + # PKG_CHECK_MODULES(prefix, list-of-modules, action-if-found, action-if-not-found) + PKG_CHECK_MODULES( + [protobuf], + [protobuf >= 4.22.0], + [ + proto3_supported=yes + AX_CXX_COMPILE_STDCXX(17, noext, mandatory) + ], + [ + PKG_CHECK_MODULES( + [protobuf], + [protobuf >= 3.0.0], + [ + proto3_supported=yes + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) + ], + [ + PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0]) + ]) + ]) save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"