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/ )