|
1 | | -cmake_minimum_required(VERSION 2.8.2) |
| 1 | +cmake_minimum_required(VERSION 3.11.0) |
2 | 2 |
|
3 | 3 | set(CMAKE_CXX_STANDARD 17) |
4 | 4 | set(CMAKE_CXX_STANDARD_REQUIRED ON) |
5 | 5 |
|
6 | | -# Download and unpack googletest at configure time |
7 | | -configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) |
8 | | -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . |
9 | | - RESULT_VARIABLE result |
10 | | - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) |
11 | | -if(result) |
12 | | - message(FATAL_ERROR "CMake step for googletest failed: ${result}") |
13 | | -endif() |
14 | | -execute_process(COMMAND ${CMAKE_COMMAND} --build . |
15 | | - RESULT_VARIABLE result |
16 | | - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) |
17 | | -if(result) |
18 | | - message(FATAL_ERROR "Build step for googletest failed: ${result}") |
19 | | -endif() |
20 | | - |
21 | | -# Prevent overriding the parent project's compiler/linker |
22 | | -# settings on Windows |
| 6 | +include(FetchContent) |
| 7 | +FetchContent_Declare( |
| 8 | + googletest |
| 9 | + GIT_REPOSITORY https://github.com/google/googletest.git |
| 10 | + GIT_TAG main # release-1.10.0 |
| 11 | +) |
| 12 | +# For Windows: Prevent overriding the parent project's compiler/linker settings |
23 | 13 | set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) |
| 14 | +FetchContent_MakeAvailable(googletest) |
24 | 15 |
|
25 | | -# Add googletest directly to our build. This defines |
26 | | -# the gtest and gtest_main targets. |
27 | | -add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src |
28 | | - ${CMAKE_CURRENT_BINARY_DIR}/googletest-build |
29 | | - EXCLUDE_FROM_ALL) |
30 | | - |
31 | | -# The gtest/gtest_main targets carry header search path |
32 | | -# dependencies automatically when using CMake 2.8.11 or |
33 | | -# later. Otherwise we have to add them here ourselves. |
34 | | -if (CMAKE_VERSION VERSION_LESS 2.8.11) |
35 | | - include_directories("${gtest_SOURCE_DIR}/include") |
36 | | -endif() |
| 16 | +# Now simply link against gtest or gtest_main as needed. Eg |
37 | 17 |
|
38 | 18 | project(fibonacci) |
39 | 19 | enable_testing() |
40 | 20 |
|
41 | | -# Now simply link against gtest or gtest_main as needed. Eg |
42 | 21 | add_executable(${PROJECT_NAME} main.cpp) |
43 | 22 | add_executable(${PROJECT_NAME}-ut test.cpp) |
44 | 23 |
|
45 | 24 | target_link_libraries(${PROJECT_NAME}-ut gtest_main) |
46 | | -add_test(NAME calculate_test COMMAND ${PROJECT_NAME}-ut) |
| 25 | + |
| 26 | +include(GoogleTest) |
| 27 | +gtest_discover_tests(${PROJECT_NAME}-ut) |
0 commit comments