mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
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<std::basic_string_view<char, std::char_traits<char> > >::Matcher(std::basic_string_view<char, std::char_traits<char> >)' ``` test_span.cpp wasn't including <algorithm> to use std::sort() and std::is_sorted().
28 lines
1.1 KiB
CMake
28 lines
1.1 KiB
CMake
# Download and unpack googletest at configure time
|
|
configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
RESULT_VARIABLE result
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
|
|
if(result)
|
|
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
|
|
endif()
|
|
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
|
RESULT_VARIABLE result
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
|
|
if(result)
|
|
message(FATAL_ERROR "Build step for googletest failed: ${result}")
|
|
endif()
|
|
|
|
# Prevent overriding the parent project's compiler/linker
|
|
# settings on Windows
|
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
|
|
# Add googletest directly to our build. This defines
|
|
# the gtest and gtest_main targets.
|
|
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)
|