Skip to content

failures with gtest 1.13+ #529

@doronbehar

Description

@doronbehar

At NixOS we are experiencing this error with our own gtest 1.14:

       > /build/source/googletest/googletest/include/gtest/gtest.h:302:41: error: expected '>' before '<' token
       >   302 |   template <typename T, std::enable_if_t<std::is_convertible<T, int64_t>::value,
       >       |                                         ^
       > make[3]: *** [tests/src/CMakeFiles/wpa2_decrypt_test.dir/build.make:76: tests/src/CMakeFiles/wpa2_decrypt_test.dir/wpa2_decrypt_test.cpp.o] Error 1
       > make[3]: Leaving directory '/build/source/build'
       > make[2]: *** [CMakeFiles/Makefile2:2383: tests/src/CMakeFiles/wpa2_decrypt_test.dir/all] Error 2
       > make[2]: Leaving directory '/build/source/build'
       > make[1]: *** [CMakeFiles/Makefile2:830: tests/src/CMakeFiles/tests.dir/rule] Error 2
       > make[1]: Leaving directory '/build/source/build'
       > make: *** [Makefile:439: tests] Error 2

We managed to fix the tests with this patch:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 902233e676ee..49ac8a1010a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -103,17 +103,9 @@ ENDIF()
 # C++11 support
 OPTION(LIBTINS_ENABLE_CXX11 "Compile libtins with c++11 features" ON)
 IF(LIBTINS_ENABLE_CXX11)
-    # We only use declval and decltype on gcc/clang as VC fails to build that code,
-    # at least on VC2013
-    IF(HAS_CXX11_RVALUE_REFERENCES AND HAS_CXX11_FUNCTIONAL AND HAS_CXX11_CHRONO AND
-       HAS_CXX11_NOEXCEPT AND ((HAS_CXX11_DECLVAL AND HAS_CXX11_DECLTYPE) OR MSVC))
-        SET(TINS_HAVE_CXX11 ON)
-        MESSAGE(STATUS "Enabling C++11 features")
-        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}")
-    ELSE()
-        MESSAGE(WARNING "The compiler doesn't support the necessary C++11 features. "
-                        "Disabling C++11 on this build")
-    ENDIF()
+    SET(TINS_HAVE_CXX11 ON)
+    MESSAGE(STATUS "Using C++11 features")
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
 ELSE(LIBTINS_ENABLE_CXX11)
     MESSAGE(
         WARNING

But it's a bit hard coding. I'm not the downstream maintainer, so I might not have time to help you debug this on our end, but I'm ought to tell you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions