From 4e72f2089997e3745cba88005eb8ee16be124220 Mon Sep 17 00:00:00 2001 From: Penthurion Date: Mon, 17 Jan 2022 16:56:15 +0100 Subject: [PATCH] CMakeLists Updated --- homework/generate-sequence/CMakeLists.txt | 44 ++++++-------------- homework/generate-sequence/CMakeLists.txt.in | 15 ------- 2 files changed, 13 insertions(+), 46 deletions(-) delete mode 100644 homework/generate-sequence/CMakeLists.txt.in diff --git a/homework/generate-sequence/CMakeLists.txt b/homework/generate-sequence/CMakeLists.txt index 247d8273..cab9d355 100644 --- a/homework/generate-sequence/CMakeLists.txt +++ b/homework/generate-sequence/CMakeLists.txt @@ -1,39 +1,19 @@ -cmake_minimum_required(VERSION 2.8.2) +cmake_minimum_required(VERSION 3.11.0) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# 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 +include(FetchContent) +FetchContent_Declare( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG main # release-1.10.0 +) +# For Windows: Prevent overriding the parent project's compiler/linker settings set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) -# 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) - -# The gtest/gtest_main targets carry header search path -# dependencies automatically when using CMake 2.8.11 or -# later. Otherwise we have to add them here ourselves. -if (CMAKE_VERSION VERSION_LESS 2.8.11) - include_directories("${gtest_SOURCE_DIR}/include") -endif() +# Now simply link against gtest or gtest_main as needed. Eg project(generateSequence) enable_testing() @@ -42,4 +22,6 @@ add_executable(${PROJECT_NAME} main.cpp) add_executable(${PROJECT_NAME}-ut test.cpp) target_link_libraries(${PROJECT_NAME}-ut gtest_main) -add_test(NAME ${PROJECT_NAME}_test COMMAND ${PROJECT_NAME}-ut) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}-ut) diff --git a/homework/generate-sequence/CMakeLists.txt.in b/homework/generate-sequence/CMakeLists.txt.in deleted file mode 100644 index 37b622bf..00000000 --- a/homework/generate-sequence/CMakeLists.txt.in +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 2.8.2) - -project(googletest-download NONE) - -include(ExternalProject) -ExternalProject_Add(googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG main - SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -)