change cmakelists and gitignore, commit third librarys source

This commit is contained in:
Jie 2024-06-18 13:25:20 +08:00
parent c1c0b98b5c
commit 83cc278754
10 changed files with 77 additions and 1 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/build/ /build/
.cache/

View File

@ -7,6 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
include_directories(${PROJECT_SOURCE_DIR}/include) include_directories(${PROJECT_SOURCE_DIR}/include)
file(GLOB_RECURSE srcs ${PROJECT_SOURCE_DIR}/src/*.cc) 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}) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
@ -14,6 +15,7 @@ include(FetchContent)
include(spdlog) include(spdlog)
include(gtest) include(gtest)
enable_testing()
IF(UNIX) IF(UNIX)
find_package(SFML 2.5 COMPONENTS system window graphics network audio REQUIRED) find_package(SFML 2.5 COMPONENTS system window graphics network audio REQUIRED)
@ -29,9 +31,20 @@ IF(UNIX)
sfml-audio sfml-audio
spdlog spdlog
gtest )
add_executable(${PROJECT_N}_test
${srcs}
${tests}
)
target_link_libraries(${PROJECT_N}_test PRIVATE
spdlog
GTest::gtest_main
) )
ELSE(WIN32) ELSE(WIN32)
ENDIF() ENDIF()
include(GoogleTest)
gtest_discover_tests(${PROJECT_N})

View File

@ -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)

View File

@ -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)

1
external/gtest vendored Submodule

@ -0,0 +1 @@
Subproject commit 1b18723e874b256c1e39378c6774a90701d70f7a

1
external/spdlog vendored Submodule

@ -0,0 +1 @@
Subproject commit 00efbb6d1dd30fcbd1a34a4c45352749550d38e7

9
include/UtilTool.h Normal file
View File

@ -0,0 +1,9 @@
#include <iostream>
#include <array>
class UtilTool
{
public:
constexpr static std::array<std::string, 2> ImageType{"jpg","png"};
static bool CheckFileIsImage(const std::string& filename);
};

15
src/UtilTool.cc Normal file
View File

@ -0,0 +1,15 @@
#include "UtilTool.h"
#include <filesystem>
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;
}

9
test/main_test.cc Normal file
View File

@ -0,0 +1,9 @@
#include <gtest/gtest.h>
int main(int argc, char **const argv){
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

11
test/util_test.cc Normal file
View File

@ -0,0 +1,11 @@
#include <gtest/gtest.h>
#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);
}