cmake_minimum_required(VERSION 3.10) project(SnakeGame) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 强制开启 MSVC 的 UTF-8 编码,防止中文乱码 if(MSVC) add_compile_options(/utf-8) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() # 1. 库路径 set(SDL3_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SDL3-3.3.6/cmake/") set(SDL3_ttf_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SDL3_ttf-3.2.2/cmake/") # 2. 查找包 find_package(SDL3 REQUIRED CONFIG) find_package(SDL3_ttf REQUIRED CONFIG) # 3. 添加源文件 (注意 WIN32 关键字) add_executable(Snake WIN32 main.cpp Snake.cpp Apple.cpp) # 4. 链接库 # 注意:SDL3 在 MSVC 下通常需要链接 SDL3::SDL3-shared target_link_libraries(Snake PRIVATE SDL3::SDL3-shared SDL3_ttf::SDL3_ttf-shared ) # 5. 资源拷贝 if(MSVC) # 拷贝 DLL add_custom_command(TARGET Snake POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" "$" "$" ) # 拷贝资源 (如果字体就在项目根目录,直接拷贝文件更保险) add_custom_command(TARGET Snake POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts/NotoSerifCJKsc-Regular.otf" "$" ) endif()