公司动态

pro 传cmakelist

📅 2026/8/14 12:56:10
pro 传cmakelist
cmake_minimum_required(VERSION 3.16) project(VpxPcieSignalRecordPlayback VERSION 1.0.0 LANGUAGES CXX) # ─── C 标准 ─── set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) # 自动处理 Q_OBJECT 的 moc set(CMAKE_AUTORCC ON) # 自动处理 .qrc 资源文件 set(CMAKE_AUTOUIC ON) # 自动处理 .ui 文件 # ─── Qt 模块 ─── find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Sql Xml SerialPort PrintSupport ) # ─── 源文件列表 ─── set(SOURCES main.cpp MainWindow.cpp # eLog eLog/Log.cpp # Easylogging 核心 .cc 文件 Extern/Logs/EasyLogging.cc # 网络 Network/FtpComunicate.cpp Network/UdpSocket.cpp Network/monitorudpsocket.cpp # 串口 Serial/SerialCtrl.cpp Serial/SerialFrameProcess.cpp # 数据库 Database/DbManager.cpp Database/LogDbManager.cpp # 工具 Utils/FileUtils.cpp Utils/UserTips.cpp Utils/Utils.cpp # 设置 Settings/Setting.cpp ) # ─── 头文件路径 ─── set(HEADERS MainWindow.h DataInterception.h DataPlayBack.h # ... 省略其他CMake 不需要显式列出头文件 # 但建议列出来让 IDE 识别 ) # ─── UI 文件 ─── set(UI_FILES MainWindow.ui ) # ─── 资源文件 ─── set(RESOURCE_FILES Resources/qss.qrc Resources/images.qrc ) # ─── 创建可执行文件 ─── add_executable(${PROJECT_NAME} ${SOURCES} ${UI_FILES} ${RESOURCE_FILES} ico/satellite.rc # Windows 资源文件 ) # ─── 包含路径 ─── target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/eLog ${CMAKE_SOURCE_DIR}/Extern/Logs # ← EasyLogging.h 路径 ) # ─── 预定义宏对应 .pro 的 DEFINES ─── target_compile_definitions(${PROJECT_NAME} PRIVATE QT_DEPRECATED_WARNINGS _AFXDLL # Easylogging 配置宏 ELPP_QT_LOGGING ELPP_FEATURE_ALL ELPP_STL_LOGGING ELPP_STRICT_SIZE_CHECK ELPP_UNICODE ELPP_MULTI_LOGGER_SUPPORT ELPP_THREAD_SAFE ELPP_LOGGING_FLAGS_FROM_ARG # QCustomPlot QCUSTOMPLOT_USE_OPENGL ) # ─── 链接库 ─── target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Sql Qt5::Xml Qt5::SerialPort Qt5::PrintSupport # FFTW ${CMAKE_SOURCE_DIR}/Extern/fftw/x64/libfftw3-3.lib # Windows 系统库 setupapi opengl32 glu32 ) # ─── 设置输出目录 ─── set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin/Debug RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin/Release ) # ─── Windows 资源文件 ─── if(WIN32) set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE ) endif()QT core gui sql xml serialport #CONFIG c11 debug_and_release greaterThan(QT_MAJOR_VERSION, 4): QT widgets printsupport TARGET xxx TEMPLATE app CONFIG(release){ MOC_DIR temp/release/moc OBJECTS_DIR temp/release/obj DESTDIR bin/Release } CONFIG(debug,debug|release){ MOC_DIR temp/debug/moc OBJECTS_DIR temp/debug/obj DESTDIR bin/Debug } msvc:QMAKE_CXXFLAGS -source-charset:utf-8 #DEFINES PROJECT_70402 #win32{ #contains(QT_ARCH, i386){ ##Windows x86 (32bit) specific build here #message(32-bit) #LIBS $$PWD/glog/glog_win/x86/libglog.a #INCLUDEPATH glog/glog_win #} else { ##Windows msvc x64 (64bit) specific build here #message(64-bit) #LIBS $$PWD/glog/glog_win/x64/glogd.lib #INCLUDEPATH glog/glog_win #} #} win32{ win32-msvc*{ MSVC_VER $$(VisualStudioVersion) equals(MSVC_VER, 14.0){ contains(QT_ARCH, i386){ message(msvc 2015 32) } else { message(msvc 2015 64) } } } else { contains(QT_ARCH, i386){ message(mingw 32) } else { message(mingw 64) } } } #INCLUDEPATH interface DEFINES QT_DEPRECATED_WARNINGS include(Extern/qtSingleApplication/QtSingleApplication.pri) DEFINES ELPP_QT_LOGGING \ ELPP_FEATURE_ALL \ ELPP_STL_LOGGING \ ELPP_STRICT_SIZE_CHECK ELPP_UNICODE \ ELPP_MULTI_LOGGER_SUPPORT \ ELPP_THREAD_SAFE \ ELPP_LOGGING_FLAGS_FROM_ARG SOURCES \ Extern/Logs/EasyLogging.cc \ HEADERS \ FormUnitTest.h \ MainWindow.h \ Extern/Logs/EasyLogging.h \ config.h \ FORMS \ FormUnitTest.ui \ MainWindow.ui \ RC_FILE ico/satellite.rc INCLUDEPATH \ eLog \ Extern/Logs \ Settings # FFT LIBS -L$$PWD/Extern/fftw/x64/ -llibfftw3-3 INCLUDEPATH $$PWD/Extern/fftw DEPENDPATH $$PWD/Extern/fftw LIBS -lsetupapi #LIBS -liphlp #QCustomPlot DEFINES QCUSTOMPLOT_USE_OPENGL LIBS -lopengl32 -lglu32 INCLUDEPATH Extern/QCustomPlot/ RESOURCES \ Resources/qss.qrc \ Resources/images.qrc DISTFILES