feat: v0.1.0更新
This commit is contained in:
160
CMakeLists.txt
Normal file
160
CMakeLists.txt
Normal 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)
|
||||
Reference in New Issue
Block a user