guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Add gmsh


From: Eric Bavier
Subject: [PATCH] Add gmsh
Date: Thu, 24 Apr 2014 15:19:43 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

This patch adds the gmsh package.  Comments welcome.

>From c5377db5fa9919b4a40d4995969ad3e00954cf95 Mon Sep 17 00:00:00 2001
From: Eric Bavier <address@hidden>
Date: Thu, 24 Apr 2014 15:13:59 -0500
Subject: [PATCH] gnu: Add gmsh

* gnu/packages/maths.scm (gmsh): New variable
---
 gnu/packages/maths.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 68c3267..de7da78 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -26,9 +26,13 @@
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
@@ -349,3 +353,72 @@ applications and it provides great support for visualizing 
results.  Work may
 be performed both at the interactive command-line as well as via script
 files.")
     (license license:gpl3+)))
+
+(define-public gmsh
+  (package
+    (name "gmsh")
+    (version "2.8.4")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://www.geuz.org/gmsh/src/gmsh-";
+                          version "-source.tgz"))
+      (sha256
+       (base32 "0jv2yvk28w86rx5mvjkb0w12ff2jxih7axnpvznpd295lg5jg7hr"))
+      (modules '((guix build utils)))
+      (snippet
+       ;; Remove non-free METIS code
+       '(delete-file-recursively "contrib/Metis"))))
+    (build-system cmake-build-system)
+    (native-inputs `(("patchelf" ,patchelf))) ;for augment-rpath
+    (propagated-inputs
+     `(("fltk" ,fltk)
+       ("gfortran" ,gfortran-4.8)
+       ("gmp" ,gmp)
+       ("hdf5-lib" ,hdf5 "lib")
+       ("hdf5-include" ,hdf5 "include")
+       ("lapack" ,lapack)
+       ("mesa" ,mesa)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)))
+    (arguments
+     `(#:modules ((guix build cmake-build-system)
+                  (guix build utils)
+                  (guix build rpath))
+       #:imported-modules ((guix build cmake-build-system)
+                           (guix build gnu-build-system)
+                           (guix build utils)
+                           (guix build rpath))
+       #:configure-flags '("-DENABLE_METIS:BOOL=OFF"
+                           "-DENABLE_BUILD_SHARED:BOOL=ON"
+                           "-DENABLE_BUILD_DYNAMIC:BOOL=ON")
+       #:phases (alist-cons-after
+                 'strip 'add-libs-to-runpath
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out     (assoc-ref outputs "out"))
+                          (libc    (assoc-ref inputs "libc"))
+                          (fltk    (assoc-ref inputs "fltk"))
+                          (fortran (assoc-ref inputs "gfortran"))
+                          (gmp     (assoc-ref inputs "gmp"))
+                          (lapack  (assoc-ref inputs "lapack"))
+                          (mesa    (assoc-ref inputs "mesa"))
+                          (libx11  (assoc-ref inputs "libx11"))
+                          (libxext (assoc-ref inputs "libxext"))
+                          (prog    (string-append out "/bin/gmsh")))
+                     (with-directory-excursion out
+                       (for-each
+                        (lambda (dir)
+                          (augment-rpath prog (string-append dir "/lib")))
+                        (list out fltk fortran gmp lapack
+                              libc mesa libx11 libxext)))))
+                 %standard-phases)))
+    (home-page "http://www.geuz.org/gmsh/";)
+    (synopsis "3D finite element grid generator")
+    (description "Gmsh is a 3D finite element grid generator with a build-in
+CAD engine and post-processor. Its design goal is to provide a fast, light and
+user-friendly meshing tool with parametric input and advanced visualization
+capabilities. Gmsh is built around four modules: geometry, mesh, solver and
+post-processing. The specification of any input to these modules is done
+either interactively using the graphical user interface or in ASCII text files
+using Gmsh's own scripting language.")
+    (license license:gpl2+)))
-- 
1.8.4

-- 
`~Eric

reply via email to

[Prev in Thread] Current Thread [Next in Thread]