nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
Constantine Glen Evans 59fbc7acba gwyddion: 2.48 -> 2.55 (and add options)
Gwyddion has a large number of optional dependencies. In this update,
those dependencies have been added with options set mostly to true,
and an option (default false) for working Python 2.7 support in the
program and in Python has been added. I have also added myself as a
maintainer as no maintainer is currently set.
2020-03-27 10:56:00 -07:00

87 lines
3.0 KiB
Nix

{ stdenv, fetchurl, gtk2, pkg-config, fftw, file,
pythonSupport ? false, pythonPackages ? null,
gnome2 ? null,
openexrSupport ? true, openexr ? null,
libzipSupport ? true, libzip ? null,
libxml2Support ? true, libxml2 ? null,
libwebpSupport ? true, libwebp ? null,
# libXmu is not used if libunique is.
libXmuSupport ? false, xorg ? null,
libxsltSupport ? true, libxslt ? null,
fitsSupport ? true, cfitsio ? null,
zlibSupport ? true, zlib ? null,
libuniqueSupport ? true, libunique ? null,
libpngSupport ? true, libpng ? null,
openglSupport ? true
}:
assert openexrSupport -> openexr != null;
assert libzipSupport -> libzip != null;
assert libxml2Support -> libxml2 != null;
assert libwebpSupport -> libwebp != null;
assert libXmuSupport -> xorg != null;
assert libxsltSupport -> libxslt != null;
assert fitsSupport -> cfitsio != null;
assert zlibSupport -> zlib != null;
assert libuniqueSupport -> libunique != null;
assert libpngSupport -> libpng != null;
assert openglSupport -> gnome2 != null;
assert pythonSupport -> (pythonPackages != null && gnome2 != null);
let
inherit (pythonPackages) pygtk pygobject2 python;
in
stdenv.mkDerivation rec {
pname = "gwyddion";
version = "2.55";
src = fetchurl {
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
sha256 = "0l00zszvginpriv12idc0y1x28qmicdmrwkqa007srkxvrdgxwdi";
};
nativeBuildInputs = [ pkg-config file ];
buildInputs = with stdenv.lib;
[ gtk2 fftw ] ++
optionals openglSupport [gnome2.gtkglext] ++
optional openexrSupport openexr ++
optional libXmuSupport xorg.libXmu ++
optional fitsSupport cfitsio ++
optional libpngSupport libpng ++
optional libxsltSupport libxslt ++
optional libxml2Support libxml2 ++
optional libwebpSupport libwebp ++
optional zlibSupport zlib ++
optional libuniqueSupport libunique ++
optional libzipSupport libzip;
propagatedBuildInputs = with stdenv.lib;
optionals pythonSupport [ pygtk pygobject2 python gnome2.gtksourceview ];
# This patch corrects problems with python support, but should apply cleanly
# regardless of whether python support is enabled, and have no effects if
# it is disabled.
patches = [ ./codegen.patch ];
meta = {
homepage = http://gwyddion.net/;
description = "Scanning probe microscopy data visualization and analysis";
longDescription = ''
A modular program for SPM (scanning probe microscopy) data
visualization and analysis. Primarily it is intended for the
analysis of height fields obtained by scanning probe microscopy
techniques (AFM, MFM, STM, SNOM/NSOM) and it supports a lot of
SPM data formats. However, it can be used for general height
field and (greyscale) image processing, for instance for the
analysis of profilometry data or thickness maps from imaging
spectrophotometry.
'';
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.cge ];
};
}