#----------------------------------------------------------------------------- # 将点云与 mesh 表达合并,不再单独处理点云 # 加载: 点云-> mesh # 处理: mesh->点云-> 处理模块 -> mesh # #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # 头文件搜索路径 #----------------------------------------------------------------------------- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) # boost include_directories(D:/vcpkg/installed/x64-windows/include) # pcl include_directories(C:/PCL/3rdParty/FLANN/include) include_directories(C:/PCL/3rdParty/VTK/include/vtk-9.3) include_directories(C:/PCL/include/pcl-1.14) # qt5 include_directories(C:/Qt/5.15.2/msvc2019_64/include/QtQml) # json include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../json) # qscintilla2 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2/lexers) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2/lexlib) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2/Qt4Qt5) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qscintilla2/src) # qcustomplot include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qcustomplot) # qhexedit include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../qhexedit) # opencv include_directories(${OpenCV_INCLUDE_DIRS}) # 内部结构 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/SqliteDBProcess/src) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/modelProcess) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/EchoShowProcess) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/OCCViewer) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/PointCloudProcess) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/SharedModuleLib) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/TableProcess) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/TaskXml) #----------------------------------------------------------------------------- # 链接库 #----------------------------------------------------------------------------- # pcl link_directories("C:/PCL/3rdParty/FLANN/lib") link_directories("C:/VTK/lib") link_directories("C:/PCL/lib") #----------------------------------------------------------------------------- # 自动添加include目录 #----------------------------------------------------------------------------- set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) #----------------------------------------------------------------------------- # 添加资源文件 #----------------------------------------------------------------------------- set(_qrc "${CMAKE_CURRENT_SOURCE_DIR}/../qrc/qianfan.qrc") set(_lang "${CMAKE_CURRENT_SOURCE_DIR}/../qrc/translations.qrc") qt5_add_resources(_resource ${_qrc} ${_lang}) #----------------------------------------------------------------------------- # 源码扫描 #----------------------------------------------------------------------------- file(GLOB_RECURSE _ui "*.ui") file(GLOB_RECURSE _header "*.h" ) file(GLOB_RECURSE _source "*.cpp") qt5_wrap_ui(_interface ${_ui}) qt5_wrap_cpp(MOC_SOURCES ${_header}) # 将生成的 MOC 文件添加到源文件列表中 list(APPEND SOURCES ${MOC_SOURCES}) #----------------------------------------------------------------------------- # 添加动态库目标 #----------------------------------------------------------------------------- add_library(PluginWBFZExchangePlugin ${_resource} ${_interface} ${_header} ${_source} ${SOURCES} ../PluginMeshDataExchange/dialogimportmodeldataset.cpp ../PluginMeshDataExchange/dialogimportmodeldataset.h ../PluginMeshDataExchange/dialogimportmodeldataset.ui ) #----------------------------------------------------------------------------- # 链接库 #----------------------------------------------------------------------------- # pcl link_directories("C:/PCL/3rdParty/FLANN/lib") link_directories("C:/VTK/lib") link_directories("C:/PCL/lib") find_package(Qt5 REQUIRED COMPONENTS Core Quick Sql Core Xml Opengl Gui Svg Xmlpatterns Uitools Widgets Qml Printsupport Sensors Quickwidgets Quick Concurrent Openglextensions Charts Datavisualization) find_package(PCL ) #gdal find_package(GDAL REQUIRED) include_directories(${GDAL_INCLUDE_DIRS}) link_directories(${GDAL_LIBRARIES}) # boost include_directories(D:/vcpkg/installed/x64-windows/include) # pcl include_directories(C:/PCL/3rdParty/FLANN/include) include_directories(C:/PCL/3rdParty/VTK/include/vtk-9.3) include_directories(C:/PCL/include/pcl-1.14) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) # qwt include_directories(${Qwt_INCLUDE_DIRS}) link_directories(${Qwt_LIBRARY_DIRS}) # gdal include_directories(${GDAL_INCLUDE_DIRS}) message("qwt dir ${Qwt_INCLUDE_DIRS}") #----------------------------------------------------------------------------- # 添加接口声明宏 #----------------------------------------------------------------------------- target_compile_definitions(PluginWBFZExchangePlugin PRIVATE "NOMINMAX") # 禁用vc++ 中的min max 定义,避免与 pcl 的中 std::min,pcl::max 函数冲突 target_compile_definitions(PluginWBFZExchangePlugin PRIVATE "WBFZ_API") target_compile_definitions(PluginWBFZExchangePlugin PRIVATE "WBCLFZSYSTEMMODULE_API") target_compile_definitions(PluginWBFZExchangePlugin PRIVATE "LAMPTOOL_API") #----------------------------------------------------------------------------- # 安装Qt的依赖文件 #----------------------------------------------------------------------------- get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION) get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY) list(APPEND _depend_library PointCloudOperator qcustomplot qhexedit qscintilla2 Common Settings PythonModule DataProperty MeshData Material Geometry BCBase ConfigOptions SelfDefObject ModelData ModuleBase PluginManager GeometryCommand GeometryWidgets IO MainWidgets MainWindow ) list(APPEND _runtimes_libraries LAMPCAE::CGNS Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml LAMPCAE::QWT LAMPCAE::QWTPOLAR ) list(APPEND _runtimes_libraries Qt5::Network Qt5::Core Qt5::Gui Qt5::Widgets Qt5::DBus Qt5::Core Qt5::Xml Qt5::OpenGL Qt5::Gui Qt5::Svg Qt5::Widgets Qt5::Qml Qt5::DataVisualization Qt5::Charts Qt5::PrintSupport Qt5::Test ) list(APPEND _runtimes_libraries OpenCASCADE::TKOpenGl OpenCASCADE::TKOffset OpenCASCADE::TKSTL OpenCASCADE::TKFillet OpenCASCADE::Freetype OpenCASCADE::TKBO OpenCASCADE::TKBRep OpenCASCADE::TKBool OpenCASCADE::TKCAF OpenCASCADE::TKCDF OpenCASCADE::TKG2d OpenCASCADE::TKG3d OpenCASCADE::TKGeomAlgo OpenCASCADE::TKGeomBase OpenCASCADE::TKHLR OpenCASCADE::TKIGES OpenCASCADE::TKLCAF OpenCASCADE::TKMath OpenCASCADE::TKMesh OpenCASCADE::TKPrim OpenCASCADE::TKSTEP OpenCASCADE::TKSTEP209 OpenCASCADE::TKSTEPAttr OpenCASCADE::TKSTEPBase OpenCASCADE::TKService OpenCASCADE::TKShHealing OpenCASCADE::TKTopAlgo OpenCASCADE::TKV3d OpenCASCADE::TKVCAF OpenCASCADE::TKXCAF OpenCASCADE::TKXDEIGES OpenCASCADE::TKXSBase OpenCASCADE::TKernel Qt5::Widgets Qt5::Xml VTK::CommonColor VTK::CommonComputationalGeometry VTK::CommonCore VTK::CommonDataModel VTK::CommonExecutionModel VTK::CommonMath VTK::CommonMisc VTK::CommonSystem VTK::CommonTransforms VTK::FiltersCore VTK::FiltersExtraction VTK::FiltersGeneral VTK::FiltersGeometry VTK::FiltersSources VTK::FiltersStatistics VTK::IOCore VTK::IOLegacy VTK::IOXML VTK::IOXMLParser VTK::ImagingCore VTK::ImagingFourier VTK::ImagingMath VTK::InteractionStyle VTK::ParallelCore VTK::ParallelDIY VTK::RenderingCore VTK::RenderingFreeType VTK::RenderingOpenGL2 VTK::RenderingUI VTK::RenderingVolume VTK::RenderingVolumeOpenGL2 VTK::doubleconversion VTK::expat VTK::freetype VTK::glew VTK::lz4 VTK::lzma VTK::sys VTK::zlib VTK::IOGeometry ) list(APPEND _runtimes_libraries VTK::CommonColor VTK::CommonComputationalGeometry VTK::CommonCore VTK::CommonDataModel VTK::CommonExecutionModel VTK::CommonMath VTK::CommonMisc VTK::CommonSystem VTK::CommonTransforms VTK::DICOMParser VTK::FiltersCore VTK::FiltersGeneral VTK::FiltersGeometry VTK::FiltersHybrid VTK::FiltersModeling VTK::FiltersSources VTK::IOCore VTK::IOChemistry VTK::IOGeometry VTK::IOImage VTK::IOLegacy VTK::ImagingCore VTK::ImagingSources VTK::RenderingCore VTK::RenderingLOD VTK::doubleconversion VTK::jpeg VTK::jsoncpp VTK::lz4 VTK::lzma VTK::metaio VTK::png VTK::pugixml VTK::sys VTK::tiff VTK::zlib ) message("OpenCV_LIBRARIES ${OpenCV_LIBRARIES}") target_include_directories(PluginWBFZExchangePlugin PRIVATE ${Qwt_INCLUDE_DIRS}) #----------------------------------------------------------------------------- # 链接依赖库 #----------------------------------------------------------------------------- target_link_libraries(PluginWBFZExchangePlugin PRIVATE ${_runtimes_libraries} ${_depend_library} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES} ${OpenCV_LIBS} unofficial::sqlite3::sqlite3 GDAL::GDAL FFTW3::fftw3 GSL::gsl GSL::gslcblas ) #----------------------------------------------------------------------------- # 添加依赖关系 #----------------------------------------------------------------------------- add_dependencies(PluginWBFZExchangePlugin ${_depend_library}) #----------------------------------------------------------------------------- # 添加运行时依赖关系 #----------------------------------------------------------------------------- set(LAMPCAE_PluginWBFZExchangePlugin_Runtimes_Libraries ${_runtimes_libraries} PARENT_SCOPE) #----------------------------------------------------------------------------- # 设置插件的输出目录 #----------------------------------------------------------------------------- set_target_properties(PluginWBFZExchangePlugin PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE $/plugins LIBRARY_OUTPUT_DIRECTORY_RELEASE $/plugins RUNTIME_OUTPUT_DIRECTORY_RELEASE $/plugins ARCHIVE_OUTPUT_DIRECTORY_DEBUG $/plugins LIBRARY_OUTPUT_DIRECTORY_DEBUG $/plugins RUNTIME_OUTPUT_DIRECTORY_DEBUG $/plugins )