From 1ea654954832c4fd0eccb73320592df9fba47dab Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Tue, 7 Sep 2021 13:29:31 -0700 Subject: [PATCH] [build] Upgrade CMake build to googletest 1.11.0 (#3548) This upgrade uncovered two issues: ntcore wasn't forcing C++17, which caused a linker error with googletest Matcher symbols: ``` undefined reference to `testing::Matcher > >::Matcher(std::basic_string_view >)' ``` test_span.cpp wasn't including to use std::sort() and std::is_sorted(). --- googletest/CMakeLists.txt | 3 +++ googletest/CMakeLists.txt.in | 2 +- ntcore/CMakeLists.txt | 1 + wpiutil/src/test/native/cpp/span/test_span.cpp | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt index c792212954..b06e3266ed 100644 --- a/googletest/CMakeLists.txt +++ b/googletest/CMakeLists.txt @@ -22,3 +22,6 @@ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL) + +target_compile_features(gtest PUBLIC cxx_std_17) +target_compile_features(gtest_main PUBLIC cxx_std_17) diff --git a/googletest/CMakeLists.txt.in b/googletest/CMakeLists.txt.in index 9378f44b33..196b3b6d11 100644 --- a/googletest/CMakeLists.txt.in +++ b/googletest/CMakeLists.txt.in @@ -5,7 +5,7 @@ project(googletest-download NONE) include(ExternalProject) ExternalProject_Add(googletest GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG b4676595c03a26bb84f68542c8b74d3d89b38b68 + GIT_TAG e2239ee6043f73722e7aa812a459f54a28552929 # 1.11.0 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" CONFIGURE_COMMAND "" diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index 0833494dc7..44992efb29 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -13,6 +13,7 @@ target_include_directories(ntcore PUBLIC $ $) wpilib_target_warnings(ntcore) +target_compile_features(ntcore PUBLIC cxx_std_17) target_link_libraries(ntcore PUBLIC wpiutil) set_property(TARGET ntcore PROPERTY FOLDER "libraries") diff --git a/wpiutil/src/test/native/cpp/span/test_span.cpp b/wpiutil/src/test/native/cpp/span/test_span.cpp index 0e1fb8b4c3..7cecfd0fa9 100644 --- a/wpiutil/src/test/native/cpp/span/test_span.cpp +++ b/wpiutil/src/test/native/cpp/span/test_span.cpp @@ -1,6 +1,7 @@ #include "wpi/span.h" +#include #include #include #include