feat: v0.1.0更新

This commit is contained in:
2026-01-14 18:07:26 +08:00
commit efd8a7cc20
55 changed files with 6200 additions and 0 deletions

160
CMakeLists.txt Normal file
View File

@@ -0,0 +1,160 @@
cmake_minimum_required(VERSION 3.15)
project(D330Viewer VERSION 1.0.0 LANGUAGES CXX C)
# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Qt6特定配置
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# 设置输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin)
# 添加include目录
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/src)
# ==================== 查找依赖库 ====================
# 查找Qt6
find_package(Qt6 REQUIRED COMPONENTS
Core
Widgets
OpenGL
OpenGLWidgets
Network
Concurrent
)
# 查找PCL
find_package(PCL REQUIRED COMPONENTS common io visualization)
if(PCL_FOUND)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
message(STATUS "PCL found: ${PCL_VERSION}")
endif()
# 查找OpenCV
find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
message(STATUS "OpenCV found: ${OpenCV_VERSION}")
endif()
# 查找OpenCL
find_package(OpenCL REQUIRED)
if(OpenCL_FOUND)
include_directories(${OpenCL_INCLUDE_DIRS})
message(STATUS "OpenCL found")
endif()
# ==================== 源文件配置 ====================
set(GUI_SOURCES
src/main.cpp
src/gui/MainWindow.cpp
src/gui/PointCloudWidget.cpp
src/gui/PointCloudGLWidget.cpp
)
set(CONFIG_SOURCES
src/config/ConfigManager.cpp
)
set(CORE_SOURCES
src/core/NetworkManager.cpp
src/core/DeviceScanner.cpp
src/core/GVSPParser.cpp
src/core/Logger.cpp
src/core/PointCloudProcessor.cpp
)
set(HEADERS
src/gui/MainWindow.h
include/gui/PointCloudWidget.h
include/gui/PointCloudGLWidget.h
src/config/ConfigManager.h
src/core/NetworkManager.h
src/core/DeviceScanner.h
include/core/Logger.h
include/core/GVSPParser.h
include/core/PointCloudProcessor.h
)
# 资源文件
set(RESOURCES
resources/resources.qrc
resources/app_icon.rc
)
# 创建可执行文件
add_executable(${PROJECT_NAME} WIN32
${GUI_SOURCES}
${CONFIG_SOURCES}
${CORE_SOURCES}
${HEADERS}
${RESOURCES}
)
# 链接库
target_link_libraries(${PROJECT_NAME}
Qt6::Core
Qt6::Widgets
Qt6::OpenGL
Qt6::OpenGLWidgets
Qt6::Network
Qt6::Concurrent
${PCL_LIBRARIES}
${OpenCV_LIBS}
${OpenCL_LIBRARIES}
ws2_32
)
# Windows特定配置
if(WIN32)
target_compile_definitions(${PROJECT_NAME} PRIVATE
_WINSOCK_DEPRECATED_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
)
endif()
# ==================== 安装配置 ====================
# 安装可执行文件
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
)
# 安装所有DLL
install(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/
DESTINATION bin
FILES_MATCHING PATTERN "*.dll"
)
# 安装Qt平台插件
install(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/platforms/
DESTINATION bin/platforms
FILES_MATCHING PATTERN "*.dll"
)
# ==================== CPack配置 - MSI安装程序 ====================
set(CPACK_PACKAGE_NAME "D330Viewer")
set(CPACK_PACKAGE_VENDOR "Lorenzo Zhao")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "D330M Depth Camera Control System")
set(CPACK_PACKAGE_VERSION "0.1.0")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "D330Viewer")
# WiX生成器配置用于MSI
set(CPACK_GENERATOR "WIX")
set(CPACK_WIX_UPGRADE_GUID "12345678-1234-1234-1234-123456789012")
set(CPACK_WIX_PROGRAM_MENU_FOLDER "D330Viewer")
# 包含CPack模块
include(CPack)