chore: 将项目从 .sln/.vcxproj 转换为 CMake 构建系统

This commit is contained in:
2026-05-03 10:58:06 +08:00
parent 5773c90440
commit 9b9cb9e86c
2 changed files with 80 additions and 0 deletions
+11
View File
@@ -432,3 +432,14 @@ FodyWeavers.xsd
# JetBrains Rider
*.sln.iml
# ---> CMake
build/
cmake-build-*/
CMakeCache.txt
CMakeFiles/
CMakeScripts/
*.cmake
!CMakeLists.txt
Makefile
*.make
+69
View File
@@ -0,0 +1,69 @@
cmake_minimum_required(VERSION 3.10)
project(tank_battles_on_the_scrap_paper
VERSION 1.0
LANGUAGES CXX
)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ── 源文件 ──
set(SOURCES
tank_battles_on_the_scrap_paper/main.cpp
tank_battles_on_the_scrap_paper/map.cpp
)
set(HEADERS
tank_battles_on_the_scrap_paper/bullet.h
tank_battles_on_the_scrap_paper/tank.h
tank_battles_on_the_scrap_paper/map.h
tank_battles_on_the_scrap_paper/data_config.h
tank_battles_on_the_scrap_paper/resource.h
)
# ── 可执行文件 ──
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}
tank_battles_on_the_scrap_paper/resource.rc
)
# ── Windows 特定配置 ──
if(WIN32)
# EasyX 图形库
target_include_directories(${PROJECT_NAME} PRIVATE
${EASYX_INCLUDE_DIR}
)
# Windows 多媒体库
target_link_libraries(${PROJECT_NAME} PRIVATE
winmm.lib
gdi32.lib
)
# 控制台子系统
set_target_properties(${PROJECT_NAME} PROPERTIES
WIN32_EXECUTABLE FALSE
)
target_compile_definitions(${PROJECT_NAME} PRIVATE
_CONSOLE
_UNICODE
UNICODE
)
else()
# 非 Windows 平台给出提示
message(WARNING
"${PROJECT_NAME} 依赖 EasyX (Windows-only 图形库)"
"当前平台不支持编译。仅生成项目结构参考。"
)
endif()
# ── 复制资源文件到构建目录 ──
file(COPY
tank_battles_on_the_scrap_paper/images/
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/images/
)
file(COPY
tank_battles_on_the_scrap_paper/music/
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/music/
)