about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/plots/default.nix
blob: 1e7db2651a10616978f2fafea6754a58c055e9fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
{ lib
, fetchFromGitHub
, python3Packages
, gobject-introspection
, libadwaita
, wrapGAppsHook
, lmmath
}:

python3Packages.buildPythonApplication rec {
  pname = "plots";
  version = "0.8.5";

  src = fetchFromGitHub {
    owner = "alexhuntley";
    repo = "Plots";
    rev = "v${version}";
    hash = "sha256-GjNpaorxkkhZsqrKq4kO5nqF5+4I4tmSc023AZpY8Sw=";
  };

  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
  buildInputs = [ libadwaita ];

  propagatedBuildInputs = with python3Packages; [
    pygobject3
    numpy
    lark
    jinja2
    freetype-py
    pyopengl
    pycairo
    pyglm
  ];

  nativeCheckInputs = with python3Packages; [ pytest ];

  postInstall = ''
    install -D ${lmmath}/share/fonts/opentype/latinmodern-math.otf -t $out/share/fonts/

    install -D res/com.github.alexhuntley.Plots.metainfo.xml -t $out/share/metainfo/
    install -D res/com.github.alexhuntley.Plots.desktop -t $out/share/applications/
    install -D res/com.github.alexhuntley.Plots.svg -t $out/share/icons/hicolor/scalable/apps/
    install -D res/com.github.alexhuntley.Plots-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/

    for lang_dir in help/*; do
      lang=$(basename "$lang_dir")
      install -D -t $out/share/help/$lang/plots/ $lang_dir/*
    done
  '';

  dontWrapGApps = true;

  preFixup = ''
    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
  '';

  meta = with lib; {
    description = "Graph plotting app for GNOME";
    mainProgram = "plots";
    longDescription = ''
      Plots is a graph plotting app for GNOME.
      Plots makes it easy to visualise mathematical formulae.
      In addition to basic arithmetic operations, it supports trigonometric, hyperbolic, exponential and logarithmic functions, as well as arbitrary sums and products.
      It can display polar equations, and both implicit and explicit Cartesian equations.
    '';
    homepage = "https://github.com/alexhuntley/Plots";
    license = licenses.gpl3Plus;
    maintainers = with maintainers; [ sund3RRR ];
  };
}