From 2dbcb2b403514472aad01cb6e1419c12a7b0fef5 Mon Sep 17 00:00:00 2001 From: ge11021 Date: Wed, 7 Dec 2022 11:27:06 +0800 Subject: [PATCH] First commit --- .gitignore | 1 + CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++ CMakeLists.txt.in | 15 +++++++++++++++ unittest/CMakeLists.txt | 7 +++++++ unittest/test_test.cc | 4 ++++ 5 files changed, 62 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 CMakeLists.txt.in create mode 100644 unittest/CMakeLists.txt create mode 100644 unittest/test_test.cc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5f1b0aa --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.1.0) +project(test) + +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) + +# 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() + +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/unittest) \ No newline at end of file diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in new file mode 100644 index 0000000..f0d7593 --- /dev/null +++ b/CMakeLists.txt.in @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.1.0) + +project(googletest-download NONE) + +include(ExternalProject) +ExternalProject_Add(googletest +# URL ${CMAKE_SOURCE_DIR}/thirdparty/gtest/googletest-release-1.8.0.zip + URL https://github.com/google/googletest/archive/release-1.12.1.zip + SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" +) \ No newline at end of file diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt new file mode 100644 index 0000000..873c537 --- /dev/null +++ b/unittest/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.1.0) +project(unittest) + +# Now simply link against gtest or gtest_main as needed. +add_executable(utest test_test.cc) +target_link_libraries(utest gtest_main) +enable_testing() \ No newline at end of file diff --git a/unittest/test_test.cc b/unittest/test_test.cc new file mode 100644 index 0000000..c9a6461 --- /dev/null +++ b/unittest/test_test.cc @@ -0,0 +1,4 @@ +#include "gtest/gtest.h" +TEST(TestSuiteName, TestName) { + EXPECT_EQ(1, 1); +} \ No newline at end of file