Files
flyLink/skylink_qt_station/CMakeLists.txt
flowerstonezl 056289625c init
2026-01-19 17:08:49 +08:00

110 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.24)
project(skylink_station LANGUAGES CXX)
# ============================================================================
# 编译标准和优化选项
# ============================================================================
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(OpenCV_DIR "D:/app/opencv4_12/opencv/build/x64/vc16/lib")
# 如果未指定编译类型,默认为 Release
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()
# ============================================================================
# 查找依赖
# ============================================================================
find_package(Qt6 REQUIRED COMPONENTS
Core
Gui
Widgets
Network
Concurrent
)
find_package(OpenCV REQUIRED COMPONENTS core imgproc)
find_package(Threads REQUIRED)
# ============================================================================
# 包含目录
# ============================================================================
include_directories(
src
${CMAKE_SOURCE_DIR}/../protocol # 公共协议定义
)
# ============================================================================
# 源文件列表
# ============================================================================
set(SOURCES
src/main.cpp
src/MainWindow.cpp
src/GroundReceiver.cpp
src/DataLogger.cpp
)
set(HEADERS
src/MainWindow.h
src/GroundReceiver.h
src/DataLogger.h
)
set(UI_FILES
forms/MainWindow.ui
)
set(RESOURCES
resources.qrc
)
# ============================================================================
# 创建可执行文件
# ============================================================================
add_executable(skylink_station
${SOURCES}
${HEADERS}
${UI_FILES}
${RESOURCES}
)
# ============================================================================
# 链接库
# ============================================================================
target_link_libraries(skylink_station
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Network
Qt6::Concurrent
${OpenCV_LIBRARIES}
Threads::Threads
)
# ============================================================================
# 编译选项
# ============================================================================
if(MSVC)
target_compile_options(skylink_station PRIVATE /W4)
else()
target_compile_options(skylink_station PRIVATE -Wall -Wextra -Wpedantic)
endif()
# ============================================================================
# 安装规则
# ============================================================================
install(TARGETS skylink_station DESTINATION bin)