# 指定 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)