DSCAnalysisTool/src/CMakeLists.txt

75 lines
1.5 KiB
CMake
Raw Normal View History

2025-03-18 03:43:14 +00:00
cmake_minimum_required(VERSION 3.5)
project(AnalysisTool VERSION 1.0.0 LANGUAGES CXX)
# Set C++11 as the minimum standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Find Qt libraries
find_package(Qt5 REQUIRED COMPONENTS Core Gui SerialPort PrintSupport Widgets)
2025-03-17 09:30:54 +00:00
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
2025-03-18 03:43:14 +00:00
# 定义搜索的文件夹
set(SEARCH_FOLDERS
${CMAKE_SOURCE_DIR}
serialport
ui
thirdparty/qcustomplot
data
)
# 初始化空的源文件列表
set(SOURCES "")
set(HEADERS "")
# 分别搜索 .cpp 和 .h 文件
foreach(FOLDER ${SEARCH_FOLDERS})
file(GLOB_RECURSE TEMP_CPP ${FOLDER}/*.cpp)
file(GLOB_RECURSE TEMP_H ${FOLDER}/*.h)
list(APPEND SOURCES ${TEMP_CPP})
list(APPEND HEADERS ${TEMP_H})
endforeach()
2025-03-17 09:30:54 +00:00
2025-03-18 03:43:14 +00:00
set(FORMS
mainwindow.ui
ui/experimentsettingform.ui
ui/realtimedataform.ui
)
# Resources
set(RESOURCES
images.qrc
)
# Add UI files to the project and automatically run uic
qt5_wrap_ui(UI_HEADERS ${FORMS})
# Add resources to the project and automatically run rcc
qt5_add_resources(RESOURCES_RCC ${RESOURCES})
# Create the executable
2025-03-17 09:30:54 +00:00
add_executable(${PROJECT_NAME}
2025-03-18 03:43:14 +00:00
${SOURCES}
${HEADERS}
${UI_HEADERS}
${RESOURCES_RCC}
)
target_include_directories(${PROJECT_NAME} PRIVATE
${SEARCH_FOLDERS}
${CMAKE_CURRENT_BINARY_DIR})
# Link against Qt5 libraries
target_link_libraries(${PROJECT_NAME}
Qt5::Core
Qt5::Gui
Qt5::SerialPort
Qt5::PrintSupport
Qt5::Widgets
)