change CMakeLists.txt and util_test.cc

This commit is contained in:
Jie 2024-07-25 15:46:49 +08:00
parent 83cc278754
commit 4d7249aca2
3 changed files with 47 additions and 6 deletions

View File

@ -1,5 +1,8 @@
cmake_minimum_required(VERSION 3.26) cmake_minimum_required(VERSION 3.26)
set(PROJECT_N "mp") set(PROJECT_N "mp")
set(PROJECT_N_T "mp_test")
project(${PROJECT_N} VERSION 1.0) project(${PROJECT_N} VERSION 1.0)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
@ -32,15 +35,29 @@ IF(UNIX)
spdlog spdlog
) )
add_executable(${PROJECT_N}_test add_executable(${PROJECT_N_T}
${srcs} ${srcs}
${tests} ${tests}
) )
target_link_libraries(${PROJECT_N}_test PRIVATE target_link_libraries(${PROJECT_N_T} PRIVATE
spdlog spdlog
GTest::gtest_main GTest::gtest_main
) )
add_custom_target(run
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_N} ./img/ocean.jpg
DEPENDS ${PROJECT_N}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Starting ${PROJECT_N}"
)
add_custom_target(run_test
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_N_T}
DEPENDS ${PROJECT_N_T}
WORKING_DIRECTORY ${PROJECT_CURRENT_BINARY_DIR}
COMMENT "Starting ${PROJECT_N}"
)
ELSE(WIN32) ELSE(WIN32)
ENDIF() ENDIF()

29
main.cc
View File

@ -1,14 +1,32 @@
#include <cstdio>
#include <SFML/System.hpp> #include <SFML/System.hpp>
#include <SFML/Graphics.hpp> #include <SFML/Graphics.hpp>
#include <SFML/Window.hpp> #include <SFML/Window.hpp>
#include <spdlog/spdlog.h> #include <spdlog/spdlog.h>
#include "UtilTool.h"
constexpr int CLIENT_WIDTH = 800;
constexpr int CLIENT_HEIGHT = 600;
int main(int argc, char** const argv){ int main(int argc, char** argv){
spdlog::info("Hello, World!"); spdlog::info("Current WorkDir Is: {}",argv[0]);
sf::RenderWindow window(sf::VideoMode(800, 600), "mp"); if(argc != 2){
spdlog::error("Usage: mp filename ");
return 0;
}
if(!UtilTool::CheckFileIsImage(argv[1])){
spdlog::info("Unsupport File Type: {}",argv[1]);
return 0;
}
sf::Texture texture; sf::Texture texture;
texture.loadFromFile(argv[1]);
sf::RenderWindow window(sf::VideoMode(CLIENT_WIDTH, CLIENT_HEIGHT), "mp");
sf::Sprite sprite; sf::Sprite sprite;
sprite.setTexture(texture);
auto imgSize = texture.getSize();
auto scale = std::min(CLIENT_WIDTH/imgSize.x,CLIENT_HEIGHT/imgSize.y);
sprite.setScale(scale, scale);
bool running = true; bool running = true;
while(running){ while(running){
@ -22,8 +40,13 @@ int main(int argc, char** const argv){
running = false; running = false;
} }
} }
if(event.type == sf::Event::Resized){
auto scale = std::min(event.size.width / imgSize.x, event.size.height / imgSize.y);
sprite.setScale(scale, scale);
}
} }
window.clear(); window.clear();
window.draw(sprite);
window.display(); window.display();
} }
return 0; return 0;

View File

@ -2,10 +2,11 @@
#include "UtilTool.h" #include "UtilTool.h"
TEST(UtilTest, CheckIsImageTestShouldTrue) { TEST(UtilTest, CheckIsImageTestShouldTrue) {
EXPECT_EQ(UtilTool::CheckFileIsImage("test.jpg"), true); EXPECT_EQ(UtilTool::CheckFileIsImage("ocean.jpg"), true);
EXPECT_EQ(UtilTool::CheckFileIsImage("test.png"), true); EXPECT_EQ(UtilTool::CheckFileIsImage("test.png"), true);
} }
TEST(UtilTest, CheckIsImageTestShouldFalse) { TEST(UtilTest, CheckIsImageTestShouldFalse) {
EXPECT_EQ(UtilTool::CheckFileIsImage("test.mp4"), false); EXPECT_EQ(UtilTool::CheckFileIsImage("test.mp4"), false);
EXPECT_EQ(UtilTool::CheckFileIsImage("test.wav"), false); EXPECT_EQ(UtilTool::CheckFileIsImage("test.wav"), false);
EXPECT_EQ(UtilTool::CheckFileIsImage("--gtest_list_tests"), false);
} }