nixpkgs/pkgs/applications/science/math/gmsh/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

71 lines
2.2 KiB
Nix
Raw Normal View History

{ lib, stdenv, fetchurl, fetchpatch, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
2023-01-06 20:11:47 +00:00
, zlib, libGL, libGLU, xorg, opencascade-occt
, python ? null, enablePython ? false }:
2016-06-09 17:51:21 +01:00
assert (!blas.isILP64) && (!lapack.isILP64);
2023-01-06 20:11:47 +00:00
assert enablePython -> (python != null);
2019-08-14 17:42:40 +01:00
stdenv.mkDerivation rec {
pname = "gmsh";
2022-12-30 14:18:27 +00:00
version = "4.11.1";
2016-06-09 17:51:21 +01:00
src = fetchurl {
url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
2022-12-30 14:18:27 +00:00
sha256 = "sha256-xf4bfL1AOIioFJKfL9D11p4nYAIioYx4bbW3boAFs2U=";
2016-06-09 17:51:21 +01:00
};
2022-02-12 16:13:53 +00:00
buildInputs = [
blas lapack gmm fltk libjpeg zlib opencascade-occt
] ++ lib.optionals (!stdenv.isDarwin) [
libGL libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes
xorg.libXext xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM
xorg.libICE
2023-01-06 20:11:47 +00:00
] ++ lib.optional enablePython python;
2016-06-09 17:51:21 +01:00
2023-01-06 20:12:02 +00:00
enableParallelBuilding = true;
patches = [
./fix-python.patch
# Pull upstream fix git gcc-13:
# https://gitlab.onelab.info/gmsh/gmsh/-/issues/2416
(fetchpatch {
name = "gcc-13-p1.patch";
url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/fb81a9c9026700e078de947b4522cb39e543a86b.patch";
hash = "sha256-1GInFqQZvOgflC3eQTjmZ9uBGFASRNCpCwDACN3yTQ4=";
})
(fetchpatch {
name = "gcc-13-p2.patch";
url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/aceb09c807b78ea26555f99fcb16c4f87c31fb5a.patch";
hash = "sha256-6FI0hIvj8hglCvxoKV0GzT2/F/Wz+ddkxV/TLzzJBLU=";
})
];
2023-01-06 20:11:47 +00:00
postPatch = ''
substituteInPlace api/gmsh.py --subst-var-by LIBPATH ${placeholder "out"}/lib/libgmsh.so
'';
# N.B. the shared object is used by bindings
cmakeFlags = [
"-DENABLE_BUILD_SHARED=ON"
"-DENABLE_BUILD_DYNAMIC=ON"
"-DENABLE_OPENMP=ON"
];
nativeBuildInputs = [ cmake gfortran ];
2023-01-06 20:11:47 +00:00
postFixup = lib.optionalString enablePython ''
mkdir -p $out/lib/python${python.pythonVersion}/site-packages
mv $out/lib/gmsh.py $out/lib/python${python.pythonVersion}/site-packages
mv $out/lib/*.dist-info $out/lib/python${python.pythonVersion}/site-packages
'';
2022-02-12 16:15:57 +00:00
doCheck = true;
2016-06-09 17:51:21 +01:00
meta = {
description = "A three-dimensional finite element mesh generator";
homepage = "https://gmsh.info/";
2021-01-15 13:21:58 +00:00
license = lib.licenses.gpl2Plus;
2016-06-09 17:51:21 +01:00
};
}