From 83cc2787543c3fd479a474a26546d69f81eddb39 Mon Sep 17 00:00:00 2001 From: Jie Date: Tue, 18 Jun 2024 13:25:20 +0800 Subject: [PATCH] change cmakelists and gitignore, commit third librarys source --- .gitignore | 1 + CMakeLists.txt | 15 ++++++++++++++- cmake_modules/gtest.cmake | 8 ++++++++ cmake_modules/spdlog.cmake | 8 ++++++++ external/gtest | 1 + external/spdlog | 1 + include/UtilTool.h | 9 +++++++++ src/UtilTool.cc | 15 +++++++++++++++ test/main_test.cc | 9 +++++++++ test/util_test.cc | 11 +++++++++++ 10 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 cmake_modules/gtest.cmake create mode 100644 cmake_modules/spdlog.cmake create mode 160000 external/gtest create mode 160000 external/spdlog create mode 100644 include/UtilTool.h create mode 100644 src/UtilTool.cc create mode 100644 test/main_test.cc create mode 100644 test/util_test.cc diff --git a/.gitignore b/.gitignore index 84c048a..c8ca994 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /build/ +.cache/ diff --git a/CMakeLists.txt b/CMakeLists.txt index e746298..3536810 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) include_directories(${PROJECT_SOURCE_DIR}/include) file(GLOB_RECURSE srcs ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB_RECURSE tests ${PROJECT_SOURCE_DIR}/test/*.cc) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) @@ -14,6 +15,7 @@ include(FetchContent) include(spdlog) include(gtest) +enable_testing() IF(UNIX) find_package(SFML 2.5 COMPONENTS system window graphics network audio REQUIRED) @@ -29,9 +31,20 @@ IF(UNIX) sfml-audio spdlog - gtest + ) + add_executable(${PROJECT_N}_test + ${srcs} + ${tests} + ) + target_link_libraries(${PROJECT_N}_test PRIVATE + spdlog + GTest::gtest_main ) ELSE(WIN32) ENDIF() +include(GoogleTest) +gtest_discover_tests(${PROJECT_N}) + + diff --git a/cmake_modules/gtest.cmake b/cmake_modules/gtest.cmake new file mode 100644 index 0000000..3af9335 --- /dev/null +++ b/cmake_modules/gtest.cmake @@ -0,0 +1,8 @@ +include(FetchContent) +FetchContent_Declare( + gtest + GIT_REPOSITORY https://gitee.com/mirrors/googletest.git + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/gtest +) + +FetchContent_MakeAvailable(gtest) diff --git a/cmake_modules/spdlog.cmake b/cmake_modules/spdlog.cmake new file mode 100644 index 0000000..32d2bf5 --- /dev/null +++ b/cmake_modules/spdlog.cmake @@ -0,0 +1,8 @@ +include(FetchContent) +FetchContent_Declare( + spdlog + GIT_REPOSITORY https://15209444885:9e4e79586fa1a4d39e6634de8881b19e@gitee.com/MaderHatter/spdlog.git + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/spdlog +) + +FetchContent_MakeAvailable(spdlog) diff --git a/external/gtest b/external/gtest new file mode 160000 index 0000000..1b18723 --- /dev/null +++ b/external/gtest @@ -0,0 +1 @@ +Subproject commit 1b18723e874b256c1e39378c6774a90701d70f7a diff --git a/external/spdlog b/external/spdlog new file mode 160000 index 0000000..00efbb6 --- /dev/null +++ b/external/spdlog @@ -0,0 +1 @@ +Subproject commit 00efbb6d1dd30fcbd1a34a4c45352749550d38e7 diff --git a/include/UtilTool.h b/include/UtilTool.h new file mode 100644 index 0000000..272329d --- /dev/null +++ b/include/UtilTool.h @@ -0,0 +1,9 @@ +#include +#include + +class UtilTool +{ +public: + constexpr static std::array ImageType{"jpg","png"}; + static bool CheckFileIsImage(const std::string& filename); +}; diff --git a/src/UtilTool.cc b/src/UtilTool.cc new file mode 100644 index 0000000..43da0e7 --- /dev/null +++ b/src/UtilTool.cc @@ -0,0 +1,15 @@ +#include "UtilTool.h" +#include + + +bool UtilTool::CheckFileIsImage(const std::string& filepath){ + //简单实现, 通过后缀判断 + auto path = std::filesystem::path(filepath); + auto su = path.extension().string(); + for(const auto& type : ImageType){ + if (su.find(type) != std::string::npos){ + return true; + } + } + return false; +} diff --git a/test/main_test.cc b/test/main_test.cc new file mode 100644 index 0000000..714e984 --- /dev/null +++ b/test/main_test.cc @@ -0,0 +1,9 @@ +#include + + +int main(int argc, char **const argv){ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + + diff --git a/test/util_test.cc b/test/util_test.cc new file mode 100644 index 0000000..0016407 --- /dev/null +++ b/test/util_test.cc @@ -0,0 +1,11 @@ +#include +#include "UtilTool.h" + +TEST(UtilTest, CheckIsImageTestShouldTrue) { + EXPECT_EQ(UtilTool::CheckFileIsImage("test.jpg"), true); + EXPECT_EQ(UtilTool::CheckFileIsImage("test.png"), true); +} +TEST(UtilTest, CheckIsImageTestShouldFalse) { + EXPECT_EQ(UtilTool::CheckFileIsImage("test.mp4"), false); + EXPECT_EQ(UtilTool::CheckFileIsImage("test.wav"), false); +}