diff mbox series

[bug#36615] gnu: Add opencascade-occt.

Message ID 3458feeb2324ad0285fea2ac4b16330c64e59b99.camel@tourbillion-technology.com
State Accepted
Headers show
Series [bug#36615] gnu: Add opencascade-occt. | expand

Commit Message

Paul Garlick July 15, 2019, 6:33 p.m. UTC
Hi Ludo,

Many thanks for your review.  I attach the revised patch.


> I think you should use ‘git-fetch’ instead because generated tarballs
> are notoriously prone to silent change.

'git-fetch' it is.  There is a clone-via-https option for OpenCASCADE
so I have updated the 'origin' section accordingly.


> Sometimes CMake-based packages have a configure-time option like
> -DWITH_TESTS=ON.  Is there something like that here?

Not in this case, AFAICS.  There is a test system that is accessible
after installation, via a shell script, so I have included a comment
and a link to the documentation for that.

This version of OpenCASCADE is the upstream version.  In recent times
it has been updated more regularly than the oce version.

Best regards,

Paul.

Comments

Ludovic Courtès July 15, 2019, 7:59 p.m. UTC | #1
Hi Paul,

Paul Garlick <pgarlick@tourbillion-technology.com> skribis:

>> Sometimes CMake-based packages have a configure-time option like
>> -DWITH_TESTS=ON.  Is there something like that here?
>
> Not in this case, AFAICS.  There is a test system that is accessible
> after installation, via a shell script, so I have included a comment
> and a link to the documentation for that.

OK, sounds good.

> This version of OpenCASCADE is the upstream version.  In recent times
> it has been updated more regularly than the oce version.

I see.

> From 3f50efc7447e7d511cca0ca05ec3539df73838fa Mon Sep 17 00:00:00 2001
> From: Paul Garlick <pgarlick@tourbillion-technology.com>
> Date: Fri, 12 Jul 2019 10:56:41 +0100
> Subject: [PATCH] gnu: Add opencascade-occt.
>
> * gnu/packages/maths.scm (opencascade-occt): New variable.

[...]

> +    (version "7.3.0p3")
> +    (source
> +      (origin
> +        (method git-fetch)
> +        (uri (git-reference
> +              (url "https://git.dev.opencascade.org/repos/occt.git")
> +              (commit "e1c158598a585694ad769cde5fe705a23dd586f0")))

If there’s a “v7.3.0p3” tag or similar, please use that in the ‘commit’
field to make it clear that the commit matches the version string.

> +            ;; Remove references to deleted files.
> +            (substitute* "dox/FILES_HTML.txt"
> +                         ((".*standard.*") "" )
> +                         ((".*UIKitSample.*") ""))
                            ^
Nitpick: this is usually aligned below the first ‘u’ of ‘substitute*’.
:-)

OK to push with these changes, thank you!

Ludo’.
Paul Garlick July 16, 2019, 9:32 p.m. UTC | #2
Hi Ludo,

> OK to push with these changes, thank you!

Pushed as commit 37dc29200c44adc0474476b8df46ed44e8a1d41a.

Thanks!

Paul.
diff mbox series

Patch

From 3f50efc7447e7d511cca0ca05ec3539df73838fa Mon Sep 17 00:00:00 2001
From: Paul Garlick <pgarlick@tourbillion-technology.com>
Date: Fri, 12 Jul 2019 10:56:41 +0100
Subject: [PATCH] gnu: Add opencascade-occt.

* gnu/packages/maths.scm (opencascade-occt): New variable.
---
 gnu/packages/maths.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 90 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 7d2c479..afeac50 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -15,7 +15,7 @@ 
 ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2017, 2018, 2019 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
@@ -1618,6 +1618,95 @@  Open CASCADE library.")
                    license:expat; file src/OpenGl/OpenGl_glext.h
                    license:bsd-3)))); test framework gtest
 
+(define-public opencascade-occt
+  (package
+    (name "opencascade-occt")
+    (version "7.3.0p3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://git.dev.opencascade.org/repos/occt.git")
+              (commit "e1c158598a585694ad769cde5fe705a23dd586f0")))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0bdywwxb6mk0ykbiajlvsb37295akqjp0a60y672qjfa67k0ljv4"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            ;; Remove files specific to non-free operating systems.
+            (delete-file-recursively "samples/ios")
+            (delete-file-recursively "samples/mfc")
+            (delete-file-recursively "samples/qt/FuncDemo")
+            (delete-file "genconf.bat")
+            (delete-file "gendoc.bat")
+            (delete-file "genproj.bat")
+            (delete-file "upgrade.bat")
+            ;; Remove references to deleted files.
+            (substitute* "dox/FILES_HTML.txt"
+                         ((".*standard.*") "" )
+                         ((".*UIKitSample.*") ""))
+            #t))))
+    (build-system cmake-build-system)
+    (arguments
+     '(;; There is no test target for make.  OCCT provides an
+       ;; 'Automated Testing System', which may be accessed after
+       ;; installation via the draw.sh script.  draw.sh is located in
+       ;; the bin directory. For details see:
+       ;; https://www.opencascade.com/doc/occt-7.3.0/overview/html/\
+       ;; occt_dev_guides__tests.html
+       #:tests? #f
+       ;; Configure without freeimage: attempting to link against the
+       ;; freeimage version 3.17 library leads to 'undefined
+       ;; reference' errors.
+       #:configure-flags
+        (list "-DUSE_FREEIMAGE:BOOL=OFF"
+              "-DUSE_TBB:BOOL=ON"
+              "-DUSE_VTK:BOOL=OFF"
+              "-DBUILD_DOC_Overview:BOOL=OFF"
+              "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
+              "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
+              "-UCMAKE_INSTALL_LIBDIR")))
+    (inputs
+     `(("doxygen" ,doxygen)
+       ;("freeimage" ,freeimage)
+       ("freetype" ,freetype)
+       ("glu" ,glu)
+       ("libxext" ,libxext)
+       ("libxi" ,libxi)
+       ("libxmu" ,libxmu)
+       ("mesa" ,mesa)
+       ("tbb" ,tbb)
+       ("tcl" ,tcl)
+       ("tk" ,tk)))
+    ;; TODO: build Overview documentation and add 'doc' output.
+    (home-page "https://www.opencascade.com")
+    (synopsis "Libraries for 3D modeling and numerical simulation")
+    (description
+     "Open CASCADE is a set of libraries for the development of applications
+dealing with 3D CAD data or requiring industrial 3D capabilities.  It includes
+C++ class libraries providing services for 3D surface and solid modeling, CAD
+data exchange, and visualization.  It is used for development of specialized
+software dealing with 3D models in design (CAD), manufacturing (CAM),
+numerical simulation (CAE), measurement equipment (CMM), and quality
+control (CAQ) domains.
+
+This is the certified version of the Open Cascade Technology (OCCT) library.")
+    (license (list ;; OCCT library:
+                   license:lgpl2.1; with an exception for the use of header
+                                  ; files, see OCCT_LGPL_EXCEPTION.txt.
+                   ;; Files src/OpenGl/glext.h, adm/cmake/cotire.cmake and
+                   ;; src/OpenGl/OpenGl_HaltonSampler.hxx:
+                   license:expat
+                   ;; Files src/ExprIntrp/ExprIntrp.tab.* and
+                   ;; src/StepFile/step.tab.*:
+                   license:gpl3+  ; with Bison 2.2 exception.
+                   ;; File src/NCollection/NCollection_UtfIterator.lxx:
+                   (license:non-copyleft
+                    "https://www.unicode.org/license.html")
+                   ;; File src/NCollection/NCollection_StdAllocator.hxx:
+                   license:public-domain))))
+
 (define-public gmsh
   (package
     (name "gmsh")
-- 
1.8.3.1