From c5377db5fa9919b4a40d4995969ad3e00954cf95 Mon Sep 17 00:00:00 2001 From: Eric Bavier 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