47 lines
1.4 KiB
CMake
47 lines
1.4 KiB
CMake
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
|
||
"$<TARGET_FILE:SDL3::SDL3-shared>"
|
||
"$<TARGET_FILE:SDL3_ttf::SDL3_ttf-shared>"
|
||
"$<TARGET_FILE_DIR:Snake>"
|
||
)
|
||
|
||
# 拷贝资源 (如果字体就在项目根目录,直接拷贝文件更保险)
|
||
add_custom_command(TARGET Snake POST_BUILD
|
||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||
"${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts/NotoSerifCJKsc-Regular.otf"
|
||
"$<TARGET_FILE_DIR:Snake>"
|
||
)
|
||
endif() |