Page MenuHomeFreeBSD

D55434.id172439.diff
No OneTemporary

D55434.id172439.diff

diff --git a/graphics/cloudcompare/Makefile b/graphics/cloudcompare/Makefile
--- a/graphics/cloudcompare/Makefile
+++ b/graphics/cloudcompare/Makefile
@@ -1,27 +1,36 @@
PORTNAME= cloudcompare
DISTVERSIONPREFIX= v
-DISTVERSION= 2.12.4
-PORTREVISION= 18
+DISTVERSION= 2.13.2
CATEGORIES= graphics
-MAINTAINER= ports@FreeBSD.org
-COMMENT= 3D point cloud processing software
-WWW= https://www.cloudcompare.org/
+MAINTAINER= alven@FreeBSD.org
+COMMENT= 3D point cloud (and triangular mesh) editing and processing software
+WWW= https://www.cloudcompare.org/ \
+ https://github.com/CloudCompare/CloudCompare/
LICENSE= GPLv2+ LGPL20+
LICENSE_COMB= multi
-USES= cmake compiler:c++11-lang localbase:ldflags qt:5
+USES= cmake gl qt:5
+
USE_GITHUB= yes
GH_ACCOUNT= CloudCompare
GH_PROJECT= ${GH_ACCOUNT}
-GH_TUPLE= CloudCompare:CCCoreLib:f0d5450:CloudCompare/libs/qCC_db/extern/CCCoreLib
-
-USE_QT= concurrent core gui opengl printsupport widgets buildtools:build qmake:build svg linguisttools:build
+GH_TUPLE= CloudCompare:CCCoreLib:a8ce4270:cccorelib/libs/qCC_db/extern/CCCoreLib \
+ jlblancoc:nanoflann:2f54b8e:nanoflann/libs/qCC_db/extern/CCCoreLib/extern/nanoflann \
+ asmaloney:libE57Format:1914b8ea:libe57format/plugins/core/IO/qE57IO/extern/libE57Format \
+ google:googletest:7a7231c:googletest/plugins/core/IO/qE57IO/extern/libE57Format/test/extern/googletest \
+ dgirardeau:q3DMASC:4eec6459:q3dmasc/plugins/core/Standard/q3DMASC \
+ davisking:dlib:9117bd78:dlib/plugins/core/Standard/qCanupo/contrib/dlib \
+ CloudCompare:qJSonRPCPlugin:1ff2dbe4:qjsonrpcplugin/plugins/core/Standard/qJSonRPCPlugin \
+ hvs-ait:mplane-plugin:342ef9f5:mplaneplugin/plugins/core/Standard/qMPlane \
+ CyberbuildLab:masonry-cc:0c590fb2:masonrycc/plugins/core/Standard/qMasonry \
+ cloudcompare:PoissonRecon:d215dbaa:poissonrecon/plugins/core/Standard/qPoissonRecon/extern/PoissonRecon \
+ truebelief:cc-treeiso-plugin:fbe6a41a:cctreeisoplugin/plugins/core/Standard/qTreeIso
+USE_GL= gl glu
USE_LDCONFIG= yes
+USE_QT= concurrent core gui opengl printsupport widgets buildtools:build qmake:build svg linguisttools:build
-# PDAL support disabled ATM
-# plugins/core/IO/qPDALIO/src/LASFilter.cpp:1360:24: error: no member named 'incompatibleSrs' in 'pdal::LasHeader'
OPTIONS_DEFINE= DXFLIB GAMEPAD GDAL PLUGINS SHAPELIB
OPTIONS_DEFAULT=DXFLIB GAMEPAD GDAL PLUGINS SHAPELIB
OPTIONS_SUB= yes
@@ -29,7 +38,6 @@
DXFLIB_DESC= Enable AutoCAD DXF file support
GAMEPAD_DESC= Enable Qt gamepad support
GDAL_DESC= Enable raster file support
-PDAL_DESC= Enable point cloud data support
SHAPELIB_DESC= Enable shape file support
DXFLIB_CMAKE_BOOL= OPTION_USE_DXF_LIB
@@ -42,19 +50,16 @@
-DGDAL_LIBRARY=${PREFIX}/lib/libgdal.so
GDAL_LIB_DEPENDS= libgdal.so:graphics/gdal
-PDAL_CMAKE_BOOL= PLUGIN_IO_QPDAL
-PDAL_CMAKE_ON= -DJSON_ROOT_DIR=${PREFIX}/include/jsoncpp
-PDAL_LIB_DEPENDS= libpdal_base.so:math/pdal
-
SHAPELIB_CMAKE_BOOL= OPTION_USE_SHAPE_LIB
SHAPELIB_LIB_DEPENDS= libshp.so:devel/shapelib
-PLUGINS_USES= eigen:3 gl jpeg xorg
+PLUGINS_USES= eigen:3 jpeg xorg
PLUGINS_CMAKE_BOOL= PLUGIN_STANDARD_QANIMATION \
PLUGIN_STANDARD_QBROOM \
PLUGIN_STANDARD_QCOMPASS \
PLUGIN_STANDARD_QCSF \
PLUGIN_IO_QCSV_MATRIX \
+ PLUGIN_IO_QPDAL \
PLUGIN_GL_QEDL \
PLUGIN_STANDARD_QFACETS \
PLUGIN_STANDARD_QHPR \
@@ -64,29 +69,28 @@
PLUGIN_STANDARD_QRANSAC_SD \
PLUGIN_STANDARD_QSRA \
PLUGIN_GL_QSSAO # plugins requiring rare external libs are left out, TODO maybe add some of them?
-PLUGINS_CMAKE_ON= -DEIGEN_ROOT_DIR:BOOL=${LOCALBASE}/include/eigen3
+PLUGINS_CMAKE_ON= -DEIGEN_ROOT_DIR:BOOL=${LOCALBASE}/include/eigen3 -DJSON_ROOT_DIR=${LOCALBASE}/include/jsoncpp
PLUGINS_CXXFLAGS= ${PLUGINS_CXXFLAGS_${CHOSEN_COMPILER_TYPE}}
PLUGINS_CXXFLAGS_clang= -Wno-narrowing
PLUGINS_CXXFLAGS+= -DEIGEN_DONT_PARALLELIZE # OpenMP is broken in cmake: see bug#223678
-PLUGINS_USE= XORG=ice,sm,x11,xext,xt GL=gl,glu
+PLUGINS_USE= XORG=ice,sm,x11,xext,xt
PLUGINS_LIB_DEPENDS= libboost_thread.so:devel/boost-libs \
libexpat.so:textproc/expat2 \
libflann_cpp.so:math/flann \
libfreetype.so:print/freetype2 \
+ libpdalcpp.so:math/pdal \
libpng.so:graphics/png \
libtiff.so:graphics/tiff \
libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
PLUGINS_IMPLIES= SHAPELIB
-pre-configure:
- @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},1' ${WRKSRC}/snap/gui/ccViewer.desktop ${WRKSRC}/snap/gui/cloudcompare.desktop
-
post-install:
- @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
- ${INSTALL_DATA} ${WRKSRC}/snap/gui/ccViewer.desktop ${STAGEDIR}${PREFIX}/share/applications
- ${INSTALL_DATA} ${WRKSRC}/snap/gui/ccViewer.png ${STAGEDIR}${PREFIX}/share/pixmaps
- ${INSTALL_DATA} ${WRKSRC}/snap/gui/cloudcompare.desktop ${STAGEDIR}${PREFIX}/share/applications
- ${INSTALL_DATA} ${WRKSRC}/snap/gui/cloudcompare.png ${STAGEDIR}${PREFIX}/share/pixmaps
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
+
+ ${INSTALL_DATA} ${FILESDIR}/*.desktop ${STAGEDIR}${PREFIX}/share/applications
+ ${INSTALL_DATA} ${FILESDIR}/*.png ${STAGEDIR}${PREFIX}/share/pixmaps
+
+ ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${STAGEDIR}${PREFIX}/share/applications/*.desktop
.include <../../math/vtk9/Makefile.version>
.include <bsd.port.mk>
diff --git a/graphics/cloudcompare/distinfo b/graphics/cloudcompare/distinfo
--- a/graphics/cloudcompare/distinfo
+++ b/graphics/cloudcompare/distinfo
@@ -1,5 +1,25 @@
-TIMESTAMP = 1659240483
-SHA256 (CloudCompare-CloudCompare-v2.12.4_GH0.tar.gz) = 31c1f4f91efbdb74619cebb36f57f999d6f1a57bb6f87b13e60d21e670c38f68
-SIZE (CloudCompare-CloudCompare-v2.12.4_GH0.tar.gz) = 35685278
-SHA256 (CloudCompare-CCCoreLib-f0d5450_GH0.tar.gz) = 564d3cfa2724580c0344266da0af778621a4e93b49a8f745df7e49de8db45a30
-SIZE (CloudCompare-CCCoreLib-f0d5450_GH0.tar.gz) = 235019
+TIMESTAMP = 1771603908
+SHA256 (CloudCompare-CloudCompare-v2.13.2_GH0.tar.gz) = 1f66785649a611124aeed17c2f5015841664536ee953a7233dae2729bcc96a72
+SIZE (CloudCompare-CloudCompare-v2.13.2_GH0.tar.gz) = 35425558
+SHA256 (CloudCompare-CCCoreLib-a8ce4270_GH0.tar.gz) = 0d4b4ab7e2d8a87611b9575259494d32e746f743ae78e829ac0f4b4b4114b880
+SIZE (CloudCompare-CCCoreLib-a8ce4270_GH0.tar.gz) = 281107
+SHA256 (jlblancoc-nanoflann-2f54b8e_GH0.tar.gz) = ee2ad38be1bd73d1d8713edd5185a1748cff0ae5732ea6d35d532524266d388b
+SIZE (jlblancoc-nanoflann-2f54b8e_GH0.tar.gz) = 687439
+SHA256 (asmaloney-libE57Format-1914b8ea_GH0.tar.gz) = 695a20b91ba291858d33e3143551a8b7e4a2a95d5bb7778fa6fe2d389b761d17
+SIZE (asmaloney-libE57Format-1914b8ea_GH0.tar.gz) = 207138
+SHA256 (google-googletest-7a7231c_GH0.tar.gz) = ed48d3016a44bb47f47f9e7999ed5b9b7b5367f7f1ce7981fc4feeebdd326b5f
+SIZE (google-googletest-7a7231c_GH0.tar.gz) = 864500
+SHA256 (dgirardeau-q3DMASC-4eec6459_GH0.tar.gz) = 09e4d29dd1962c8101eb25e2b8eff580fa075c2a590e3ff88ec3c7ebea407d92
+SIZE (dgirardeau-q3DMASC-4eec6459_GH0.tar.gz) = 444900
+SHA256 (davisking-dlib-9117bd78_GH0.tar.gz) = 3a2c3bc37356e071a32b0f0043c7bbbe1558565b7ed23f6987e83128cb00cfbe
+SIZE (davisking-dlib-9117bd78_GH0.tar.gz) = 10588146
+SHA256 (CloudCompare-qJSonRPCPlugin-1ff2dbe4_GH0.tar.gz) = a027cc90e90dbb8fa1953905027cf78e9100073c2b34ca1fa748419cca591293
+SIZE (CloudCompare-qJSonRPCPlugin-1ff2dbe4_GH0.tar.gz) = 20096
+SHA256 (hvs-ait-mplane-plugin-342ef9f5_GH0.tar.gz) = a9c86d1bedec83a2ac484e9c8dcf7c9b8b2cd16845e161ee187845e0dd96f3fa
+SIZE (hvs-ait-mplane-plugin-342ef9f5_GH0.tar.gz) = 2669085
+SHA256 (CyberbuildLab-masonry-cc-0c590fb2_GH0.tar.gz) = a2dbb1c66732d88db7e9843019505f6cc74b286bf2e7fc05d383cbdda03e5408
+SIZE (CyberbuildLab-masonry-cc-0c590fb2_GH0.tar.gz) = 271313
+SHA256 (cloudcompare-PoissonRecon-d215dbaa_GH0.tar.gz) = b4d1be598eb5f58b55f10e3e226ebc7f2d24ee88c417d0f311080483aa97e078
+SIZE (cloudcompare-PoissonRecon-d215dbaa_GH0.tar.gz) = 734098
+SHA256 (truebelief-cc-treeiso-plugin-fbe6a41a_GH0.tar.gz) = 6afc6af9fdd6d35d93bdacdbe5f59e1c1aaedceb876403edd06e5fa5d0a86dda
+SIZE (truebelief-cc-treeiso-plugin-fbe6a41a_GH0.tar.gz) = 788967
diff --git a/graphics/cloudcompare/files/ccViewer.desktop b/graphics/cloudcompare/files/ccViewer.desktop
new file mode 100644
--- /dev/null
+++ b/graphics/cloudcompare/files/ccViewer.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=CloudCompare Viewer
+Comment=3D point cloud and mesh processing software
+Exec=%%PREFIX%%/bin/ccViewer
+Terminal=false
+Categories=Graphics;
+Icon=%%PREFIX%%/share/pixmaps/ccViewer.png
diff --git a/graphics/cloudcompare/files/ccViewer.png b/graphics/cloudcompare/files/ccViewer.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff9afbc773b8cef505c1ac2d34ed8c9afa1f9a2b
GIT binary patch
literal 21997
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
literal 0
Hc$@<O00001
diff --git a/graphics/cloudcompare/files/cloudcompare.desktop b/graphics/cloudcompare/files/cloudcompare.desktop
new file mode 100644
--- /dev/null
+++ b/graphics/cloudcompare/files/cloudcompare.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=CloudCompare
+Comment=3D point cloud and mesh processing software
+Exec=%%PREFIX%%/bin/CloudCompare
+Terminal=false
+Categories=Graphics;
+Icon=%%PREFIX%%/share/pixmaps/cloudcompare.png
diff --git a/graphics/cloudcompare/files/cloudcompare.png b/graphics/cloudcompare/files/cloudcompare.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ac3e96d78e6c14b0530277732248a8e51878c22
GIT binary patch
literal 9095
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
Na#D)#OC=5b{vXa;tRnyb
literal 0
Hc$@<O00001
diff --git a/graphics/cloudcompare/files/patch-libs_CCAppCommon_src_ccApplicationBase.cpp b/graphics/cloudcompare/files/patch-libs_CCAppCommon_src_ccApplicationBase.cpp
new file mode 100644
--- /dev/null
+++ b/graphics/cloudcompare/files/patch-libs_CCAppCommon_src_ccApplicationBase.cpp
@@ -0,0 +1,11 @@
+--- libs/CCAppCommon/src/ccApplicationBase.cpp.orig 2024-07-06 10:08:06 UTC
++++ libs/CCAppCommon/src/ccApplicationBase.cpp
+@@ -213,7 +213,7 @@ void ccApplicationBase::setupPaths()
+ m_pluginPaths << (appDir.absolutePath() + "/plugins");
+ m_shaderPath = (appDir.absolutePath() + "/shaders");
+ m_translationPath = (appDir.absolutePath() + "/translations");
+-#elif defined(Q_OS_LINUX)
++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ // Shaders & plugins are relative to the bin directory where the executable is found
+ QDir theDir = appDir;
+
diff --git a/graphics/cloudcompare/files/patch-snap_gui_ccViewer.desktop b/graphics/cloudcompare/files/patch-snap_gui_ccViewer.desktop
deleted file mode 100644
--- a/graphics/cloudcompare/files/patch-snap_gui_ccViewer.desktop
+++ /dev/null
@@ -1,13 +0,0 @@
---- snap/gui/ccViewer.desktop.orig 2018-03-16 21:26:02 UTC
-+++ snap/gui/ccViewer.desktop
-@@ -2,8 +2,8 @@
- Type=Application
- Name=CloudCompare Viewer
- Comment=3D point cloud and mesh processing software
--Exec=cloudcompare.ccViewer
-+Exec=ccViewer
- Terminal=false
- Categories=Graphics;
--Icon=${SNAP}/meta/gui/ccViewer.png
-+Icon=/usr/local/share/pixmaps/ccViewer.png
-
diff --git a/graphics/cloudcompare/files/patch-snap_gui_cloudcompare.desktop b/graphics/cloudcompare/files/patch-snap_gui_cloudcompare.desktop
deleted file mode 100644
--- a/graphics/cloudcompare/files/patch-snap_gui_cloudcompare.desktop
+++ /dev/null
@@ -1,13 +0,0 @@
---- snap/gui/cloudcompare.desktop.orig 2018-03-16 21:26:02 UTC
-+++ snap/gui/cloudcompare.desktop
-@@ -2,8 +2,8 @@
- Type=Application
- Name=CloudCompare
- Comment=3D point cloud and mesh processing software
--Exec=cloudcompare.CloudCompare
-+Exec=CloudCompare
- Terminal=false
- Categories=Graphics;
--Icon=${SNAP}/meta/gui/cloudcompare.png
-+Icon=/usr/local/share/pixmaps/cloudcompare.png
-
diff --git a/graphics/cloudcompare/pkg-descr b/graphics/cloudcompare/pkg-descr
--- a/graphics/cloudcompare/pkg-descr
+++ b/graphics/cloudcompare/pkg-descr
@@ -1,7 +1,15 @@
-CloudCompare is a 3D point cloud (and triangular mesh) processing software. It
-was originally designed to perform comparison between two 3D points clouds
-(such as the ones obtained with a laser scanner) or between a point cloud and a
-triangular mesh. It relies on an octree structure that is highly optimized for
-this particular use-case. It was also meant to deal with huge point clouds
-(typically more than 10 millions points, and up to 120 millions with 2 Gb of
-memory).
+CloudCompare is a 3D point cloud (and triangular mesh) editing and processing
+software.
+
+Originally, it has been designed to perform direct comparison between dense 3D
+point clouds. It relies on a specific octree structure that enables great
+performances1 when performing this kind of task. Moreover, as most point clouds
+were acquired by terrestrial laser scanners, CloudCompare was meant to deal with
+huge point clouds on a standard laptop - typically more than 10 million points
+(in 2005!). Soon after, comparison between a point cloud and a triangular mesh
+has been supported. Afterwards, many other point cloud processing algorithms
+have followed (registration, resampling, color/normal vectors/scalar fields
+management, statistics computation, sensor management, interactive or automatic
+segmentation, etc.) as well as display enhancement tools (custom color ramps,
+color & normal vectors handling, calibrated pictures handling, OpenGL shaders,
+plugins, etc.).
diff --git a/graphics/cloudcompare/pkg-plist b/graphics/cloudcompare/pkg-plist
--- a/graphics/cloudcompare/pkg-plist
+++ b/graphics/cloudcompare/pkg-plist
@@ -18,6 +18,7 @@
%%PLUGINS%%lib/cloudcompare/plugins/libQHPR_PLUGIN.so
%%PLUGINS%%lib/cloudcompare/plugins/libQM3C2_PLUGIN.so
%%PLUGINS%%lib/cloudcompare/plugins/libQPCV_PLUGIN.so
+%%PLUGINS%%lib/cloudcompare/plugins/libQPDAL_IO_PLUGIN.so
%%PLUGINS%%lib/cloudcompare/plugins/libQPHOTOSCAN_IO_PLUGIN.so
%%PLUGINS%%lib/cloudcompare/plugins/libQRANSAC_SD_PLUGIN.so
%%PLUGINS%%lib/cloudcompare/plugins/libQSRA_PLUGIN.so
@@ -30,6 +31,9 @@
%%DATADIR%%/shaders/Bilateral/bilateral.frag
%%DATADIR%%/shaders/Bilateral/bilateral.vert
%%DATADIR%%/shaders/ColorRamp/color_ramp.frag
+%%DATADIR%%/shaders/DrawNormals/DrawNormals.fs
+%%DATADIR%%/shaders/DrawNormals/DrawNormals.gs
+%%DATADIR%%/shaders/DrawNormals/DrawNormals.vs
%%PLUGINS%%%%DATADIR%%/shaders/EDL/edl_mix.frag
%%PLUGINS%%%%DATADIR%%/shaders/EDL/edl_mix.vert
%%PLUGINS%%%%DATADIR%%/shaders/EDL/edl_shade.frag
@@ -41,7 +45,7 @@
%%DATADIR%%/translations/CloudCompare_es_AR.qm
%%DATADIR%%/translations/CloudCompare_fr.qm
%%DATADIR%%/translations/CloudCompare_ja.qm
-%%DATADIR%%/translations/CloudCompare_kr.qm
+%%DATADIR%%/translations/CloudCompare_ko.qm
%%DATADIR%%/translations/CloudCompare_pt.qm
%%DATADIR%%/translations/CloudCompare_ru.qm
%%DATADIR%%/translations/CloudCompare_zh.qm

File Metadata

Mime Type
text/plain
Expires
Sun, Aug 23, 11:43 PM (7 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37165869
Default Alt Text
D55434.id172439.diff (52 KB)

Event Timeline