1{
2 buildOctavePackage,
3 lib,
4 fetchFromGitHub,
5 # Octave Dependencies
6 splines,
7 # Other Dependencies
8 gmsh,
9 gawk,
10 pkg-config,
11 dolfin,
12 autoconf,
13 automake,
14}:
15
16buildOctavePackage rec {
17 pname = "msh";
18 version = "1.0.12";
19
20 src = fetchFromGitHub {
21 owner = "carlodefalco";
22 repo = "msh";
23 rev = "v${version}";
24 sha256 = "sha256-UnMrIruzm3ARoTgUlMMxfjTOMZw/znZUQJmj3VEOw8I=";
25 };
26
27 nativeBuildInputs = [
28 pkg-config
29 autoconf
30 automake
31 dolfin
32 ];
33
34 buildInputs = [
35 dolfin
36 ];
37
38 propagatedBuildInputs = [
39 gmsh
40 gawk
41 dolfin
42 ];
43
44 requiredOctavePackages = [
45 splines
46 ];
47
48 meta = {
49 homepage = "https://gnu-octave.github.io/packages/msh/";
50 license = lib.licenses.gpl2Plus;
51 maintainers = with lib.maintainers; [ KarlJoad ];
52 description = "Create and manage triangular and tetrahedral meshes for Finite Element or Finite Volume PDE solvers";
53 longDescription = ''
54 Create and manage triangular and tetrahedral meshes for Finite Element or
55 Finite Volume PDE solvers. Use a mesh data structure compatible with
56 PDEtool. Rely on gmsh for unstructured mesh generation.
57 '';
58 # Not technically broken, but missing some functionality.
59 # dolfin needs to be its own stand-alone library for the last tests to pass.
60 };
61}