57 lines
1.5 KiB
CMake
57 lines
1.5 KiB
CMake
# 指定 CMake 最低版本要求
|
||
cmake_minimum_required(VERSION 3.10)
|
||
|
||
# 定义工程名(用于生成解决方案/项目名称)
|
||
project(DTU_HMI)
|
||
|
||
# 统一使用 C99 标准编译 C 代码
|
||
set(CMAKE_C_STANDARD 99)
|
||
|
||
# 导出 compile_commands.json,供 Cursor/clangd/静态分析工具使用
|
||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||
|
||
# MSVC 编译器下强制使用 UTF-8 源文件编码,避免中文注释/字符串乱码
|
||
# 同时关闭 C4819(部分环境即使是 UTF-8 文件仍会误报代码页告警)
|
||
if(MSVC)
|
||
add_compile_options(/utf-8 /wd4819)
|
||
endif()
|
||
|
||
# 可选开关:启用 DEBUG 宏,用于条件编译调试日志
|
||
# 用法:cmake -DENABLE_DEBUG=ON ..
|
||
option(ENABLE_DEBUG "Enable debug printf output" OFF)
|
||
if(ENABLE_DEBUG)
|
||
add_compile_definitions(DEBUG)
|
||
endif()
|
||
|
||
# 主可执行程序 DTU-HMI 及其源码列表
|
||
add_executable(DTU-HMI
|
||
src/main.c
|
||
src/thread_utils.c
|
||
src/remoteDisplay.c
|
||
src/Drv/menu.c
|
||
src/Drv/lcd/lcd.c
|
||
src/Drv/lcd/lcd_draw.c
|
||
src/Drv/lcd/lcd_text.c
|
||
src/Drv/key.c
|
||
src/Drv/lcd/ascii.c
|
||
src/Drv/display.c
|
||
src/TCP/tcp.c
|
||
)
|
||
|
||
# 可执行程序头文件搜索路径
|
||
target_include_directories(DTU-HMI PRIVATE include src src/TCP)
|
||
|
||
# 按平台链接系统库:
|
||
# - Windows 需要 Winsock2(ws2_32)
|
||
# - Linux/macOS 使用 pthread
|
||
if(WIN32)
|
||
target_link_libraries(DTU-HMI PRIVATE ws2_32)
|
||
else()
|
||
target_link_libraries(DTU-HMI PRIVATE pthread)
|
||
endif()
|
||
|
||
# 开启 CTest 测试支持,并加载 tests 子目录中的测试目标
|
||
enable_testing()
|
||
add_subdirectory(tests)
|
||
|