Subject: [bug#73934] [v2] Add CloudCompare 2.13

From: Andreas Enge <[email-masked]>
Date: Wed, 5 Feb 2025 21:29:47 +0100

Hello Mattia,

apologies for the exceptionally long delay in treating your patches,
which are very nice and well prepared.

I have slightly adapted libe57format. For the license, I kept only
boost1.0, as this is given in the licence file and also in a few headers
I checked. I have tried to make the tests work - it is possible to add
the external test data in a separate origin, but even then there are
complaints about googletest not working. So I have updated the
explanations, removed the googletest native input and kept the tests
disabled.

This one is pushed.

For cloudcompare, please find a v2 attached. The git tag did not
correspond to the version, and the licence is gpl2+ ("or later").

I wonder whether the recursive git download is the way to go, or whether
it does not pull bundled libraries that we had better unbundle? A few of
the submodules contain "extern" in their name. For instance, it looks as
if there is a second copy of libe57format that is downloaded.

I also wonder whether the mixture of qt@5 and qt@6 packages is a good
idea.

In any case, the package compiles, and the binary starts.

What do you think?

Andreas

>From 5a42727e4625470406a47650e525a1667f9b7514 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Mattia Bunel <[email-masked]>
Date: Wed, 5 Feb 2025 20:01:36 +0100
Subject: [PATCH] gnu: Add cloudcompare.

* gnu/packages/geo.scm (cloudcompare): New variable.

Change-Id: If7ec6bc74ade4df662e5e66eda13979efa53161b
Signed-off-by: Andreas Enge <[email-masked]>
---
 gnu/packages/geo.scm | 96 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 96 insertions(+)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 368ea01ca17..0dd5ca921cc 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -3725,3 +3725,99 @@ (define-public libe57format
 attributes associated with 3D point data (color and intensity),
 and 2D images (photos taken using a 3D imaging system).")
     (license license:boost1.0)))
+
+(define-public cloudcompare
+  (package
+    (name "cloudcompare")
+    (version "2.13.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/CloudCompare/CloudCompare")
+             (commit "v2.13.2")
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wck05zbfkw7cg8h6fjiinjzrsk55858qg0k2m5rmr9dfdzjbzbb"))))
+    (inputs (list qtbase-5
+                  qtsvg-5
+                  qtlocation
+                  qttools-5
+                  gdal
+                  laszip
+                  xerces-c
+                  libe57format
+                  zlib))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags #~(list
+                           ;; Options
+                           "-DOPTION_BUILD_CCVIEWER=NO"
+                           "-DBUILD_TESTING=ON"
+                           "-DOPTION_USE_SHAPE_LIB=YES"
+                           "-DOPTION_USE_DXF_LIB=YES"
+                           "-DOPTION_USE_GDAL=YES"
+                           ;; Shaders
+                           ;; At least a shader is needed
+                           "-DPLUGIN_GL_QEDL=YES"
+                           "-DPLUGIN_GL_QSSAO=YES"
+                           ;; IO
+                           "-DPLUGIN_IO_QCORE=YES"
+                           "-DPLUGIN_IO_QADDITIONAL=NO"
+                           "-DPLUGIN_IO_QCSV_MATRIX=NO"
+                           ;; No guix package for DRACO
+                           "-DPLUGIN_IO_QDRACO=NO"
+                           "-DPLUGIN_IO_QE57=YES"
+                           ;; No guix package for FBX
+                           "-DPLUGIN_IO_QFBX=NO"
+                           ;; laszip will replace PDAL in CloudCompare 2.13
+                           "-DPLUGIN_IO_QLAS=YES"
+                           "-DPLUGIN_IO_QPDAL=NO"
+                           "-DPLUGIN_IO_QPHOTOSCAN=YES"
+                           ;; No guix package for Riegl RDBlib
+                           "-DPLUGIN_IO_QRDB=NO"
+                           "-DPLUGIN_IO_QSTEP=NO"
+                           ;; Plugins
+                           "-DPLUGIN_STANDARD_QANIMATION=YES"
+                           "-DQANIMATION_WITH_FFMPEG_SUPPORT=NO"
+                           "-DPLUGIN_STANDARD_QBROOM=YES"
+                           ;; Compilation error
+                           "-DPLUGIN_STANDARD_QCANUPO=YES"
+                           "-DPLUGIN_STANDARD_QCLOUDLAYERS=YES"
+                           "-DPLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER=YES"
+                           "-DPLUGIN_STANDARD_QCOMPASS=YES"
+                           ;; Only for Windows at the moment
+                           "-DPLUGIN_STANDARD_QCORK=NO"
+                           "-DPLUGIN_STANDARD_QCSF=YES"
+                           "-DPLUGIN_STANDARD_QFACETS=YES"
+                           ;; Error with eigen
+                           "-DPLUGIN_STANDARD_QHOUGH_NORMALS=NO"
+                           "-DPLUGIN_STANDARD_QHPR=YES"
+                           ;; Need qtWebSocket engine
+                           "-DPLUGIN_STANDARD_QJSONRPC=NO"
+                           "-DPLUGIN_STANDARD_QM3C2=YES"
+                           ;; Need PCL lib
+                           "-DPLUGIN_STANDARD_MASONRY_QAUTO_SEG=NO"
+                           "-DPLUGIN_STANDARD_MASONRY_QMANUAL_SEG=NO"
+                           "-DPLUGIN_STANDARD_QPCL=NO"
+                           ;; Need CGAL
+                           "-DPLUGIN_STANDARD_QMESH_BOOLEAN=NO"
+                           "-DPLUGIN_STANDARD_QMPLANE=YES"
+                           "-DPLUGIN_STANDARD_QPCV=NO"
+                           "-DPLUGIN_STANDARD_QPOISSON_RECON=YES"
+                           "-DPLUGIN_STANDARD_QRANSAC_SD=YES"
+                           "-DPLUGIN_STANDARD_QSRA=YES")
+      #:build-type "Release"
+      #:tests? #f))
+    (home-page "https://cloudcompare.org/")
+    (synopsis "Point cloud processing software")
+    (description
+     "CloudCompare is a 3D point cloud (and triangular mesh) processing
+software.  It was originally designed to perform comparison between two
+3D point 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 is also meant to deal
+with huge point clouds.")
+    (license license:gpl2+)))

base-commit: cc2b236e3777c0f7c758805289f42b3932668c57
prerequisite-patch-id: 0289950ff5d75c0e49094995eef252869b9b875f
-- 
2.48.1