gnu: Add mmg.
* gnu/packages/graphics.scm (mmg): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
b08439809f
commit
1cf6cb9503
1 changed files with 103 additions and 0 deletions
|
|
@ -2182,6 +2182,109 @@ Features include:
|
||||||
")
|
")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public mmg
|
||||||
|
(package
|
||||||
|
(name "mmg")
|
||||||
|
(version "5.6.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/MmgTools/mmg")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "173biz5skbwg27i5w6layg7mydjzv3rmi1ywhra4rx9rjf5c0cc5"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(outputs '("out" "lib" "doc"))
|
||||||
|
(arguments
|
||||||
|
(list #:configure-flags
|
||||||
|
#~(list (string-append "-DCMAKE_INSTALL_PREFIX=" #$output:lib)
|
||||||
|
(string-append "-DCMAKE_INSTALL_RPATH=" #$output:lib "/lib")
|
||||||
|
;; The build doesn't honor -DCMAKE_INSTALL_BINDIR, hence
|
||||||
|
;; the adjust-bindir phase.
|
||||||
|
;;(string-append "-DCMAKE_INSTALL_BINDIR=" #$output "/bin")
|
||||||
|
"-DBUILD_SHARED_LIBS=ON"
|
||||||
|
"-DBUILD_TESTING=ON"
|
||||||
|
;; The longer tests are for continuous integration and
|
||||||
|
;; depend on input data which must be downloaded.
|
||||||
|
"-DONLY_VERY_SHORT_TESTS=ON"
|
||||||
|
;; TODO: Add Elas (from
|
||||||
|
;; https://github.com/ISCDtoolbox/LinearElasticity).
|
||||||
|
"-DUSE_ELAS=OFF"
|
||||||
|
;; TODO: Figure out how to add VTK to inputs without
|
||||||
|
;; causing linking errors in ASLI of the form:
|
||||||
|
;;
|
||||||
|
;; ld: /gnu/store/…-vtk-9.0.1/lib/libvtkWrappingPythonCore-9.0.so.1:
|
||||||
|
;; undefined reference to `PyUnicode_InternFromString'
|
||||||
|
;;
|
||||||
|
;; Also, adding VTK to inputs requires adding these as well:
|
||||||
|
;;
|
||||||
|
;; double-conversion eigen expat freetype gl2ps glew hdf5
|
||||||
|
;; jsoncpp libjpeg-turbo libpng libtheora libtiff libx11
|
||||||
|
;; libxml2 lz4 netcdf proj python sqlite zlib
|
||||||
|
"-DUSE_VTK=OFF")
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'build 'build-doc
|
||||||
|
(lambda _
|
||||||
|
;; Fontconfig wants to write to a cache directory.
|
||||||
|
(setenv "HOME" "/tmp")
|
||||||
|
(invoke "make" "doc")))
|
||||||
|
(add-after 'install 'install-doc
|
||||||
|
(lambda _
|
||||||
|
(copy-recursively
|
||||||
|
"../source/doc/man" (string-append #$output
|
||||||
|
"/share/man/man1"))
|
||||||
|
(copy-recursively
|
||||||
|
"doc" (string-append #$output:doc "/share/doc/"
|
||||||
|
#$name "-" #$version))))
|
||||||
|
(add-after 'install 'adjust-bindir
|
||||||
|
(lambda _
|
||||||
|
(let ((src (string-append #$output:lib "/bin"))
|
||||||
|
(dst (string-append #$output "/bin")))
|
||||||
|
(copy-recursively src dst)
|
||||||
|
(delete-file-recursively src))))
|
||||||
|
;; Suffixing program names with build information, i.e.,
|
||||||
|
;; optimization flags and whether debug symbols were generated,
|
||||||
|
;; is unusual and fragilizes scripts calling these programs.
|
||||||
|
(add-after 'adjust-bindir 'fix-program-names
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion (string-append #$output "/bin")
|
||||||
|
(rename-file "mmg2d_O3d" "mmg2d")
|
||||||
|
(rename-file "mmg3d_O3d" "mmg3d")
|
||||||
|
(rename-file "mmgs_O3d" "mmgs")))))))
|
||||||
|
(native-inputs
|
||||||
|
;; For the documentation
|
||||||
|
(list doxygen graphviz
|
||||||
|
;; TODO: Fix failing LaTeX invocation (which results in equations
|
||||||
|
;; being inserted literally into PNGs rather than being typeset).
|
||||||
|
;;texlive-tiny
|
||||||
|
))
|
||||||
|
(inputs
|
||||||
|
(list scotch))
|
||||||
|
(home-page "http://www.mmgtools.org/")
|
||||||
|
(synopsis "Surface and volume remeshers")
|
||||||
|
(description "Mmg is a collection of applications and libraries for
|
||||||
|
bidimensional and tridimensional surface and volume remeshing. It consists
|
||||||
|
of:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item the @code{mmg2d} application and library: mesh generation from a set of
|
||||||
|
edges, adaptation and optimization of a bidimensional triangulation and
|
||||||
|
isovalue discretization;
|
||||||
|
|
||||||
|
@item the @code{mmgs} application and library: adaptation and optimization of
|
||||||
|
a surface triangulation and isovalue discretization;
|
||||||
|
|
||||||
|
@item the @code{mmg3d} application and library: adaptation and optimization of
|
||||||
|
a tetrahedral mesh, isovalue discretization and Lagrangian movement;
|
||||||
|
|
||||||
|
@item the @code{mmg} library gathering the @code{mmg2d}, @code{mmgs} and
|
||||||
|
@code{mmg3d} libraries.
|
||||||
|
@end itemize")
|
||||||
|
(license license:lgpl3+)))
|
||||||
|
|
||||||
(define-public f3d
|
(define-public f3d
|
||||||
;; There have been many improvements since the last tagged version (1.2.1,
|
;; There have been many improvements since the last tagged version (1.2.1,
|
||||||
;; released in December 2021), including support for the Alembic file
|
;; released in December 2021), including support for the Alembic file
|
||||||
|
|
|
||||||
Reference in a new issue