SnakeGame
This commit is contained in:
47
blockade/CMakeLists.txt
Normal file
47
blockade/CMakeLists.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user