Commit ca679554 authored by Doron Behar's avatar Doron Behar
Browse files

gmt: modernize

Nixfmt; Use `finalAttrs:` pattern; don't use `with lib;` in meta; Switch
to fetchFromGitHub, for better automatic updates, with hash instead of
sha256.
parent 7b067a12
Loading
Loading
Loading
Loading
+84 −46
Original line number Diff line number Diff line
{ lib, stdenv, fetchurl, cmake, curl, Accelerate, CoreGraphics, CoreVideo
, fftwSinglePrec, netcdf, pcre, gdal, blas, lapack, glibc, ghostscript, dcw-gmt
, gshhg-gmt }:
{
  lib,
  stdenv,
  fetchFromGitHub,
  cmake,
  curl,
  Accelerate,
  CoreGraphics,
  CoreVideo,
  fftwSinglePrec,
  netcdf,
  pcre,
  gdal,
  blas,
  lapack,
  glibc,
  ghostscript,
  dcw-gmt,
  gshhg-gmt,
}:

/* The onus is on the user to also install:
/*
  The onus is on the user to also install:
   - ffmpeg for webm or mp4 output
   - graphicsmagick for gif output
*/

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "gmt";
  version = "6.4.0";
  src = fetchurl {
    url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
    sha256 = "sha256-0mfAx9b7MMnqfgKe8n2tsm/9e5LLS0cD+aO6Do85Ohs=";
  src = fetchFromGitHub {
    owner = "GenericMappingTools";
    repo = "gmt";
    rev = "refs/tags/${finalAttrs.version}";
    hash = "sha256-rRNEo7dGkmgrkhNCBacyfBYrl7zHnE0KMWQHT0Ekbo0=";
  };

  nativeBuildInputs = [ cmake ];
  nativeBuildInputs = [
    cmake
  ];

  buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ]
    ++ (if stdenv.hostPlatform.isDarwin then [
  buildInputs =
    [
      curl
      gdal
      netcdf
      pcre
      dcw-gmt
      gshhg-gmt
    ]
    ++ (
      if stdenv.hostPlatform.isDarwin then
        [
          Accelerate
          CoreGraphics
          CoreVideo
    ] else [
        ]
      else
        [
          glibc
          fftwSinglePrec
          blas
          lapack
    ]);
        ]
    );

  propagatedBuildInputs = [ ghostscript ];
  propagatedBuildInputs = [
    ghostscript
  ];

  cmakeFlags = [
  cmakeFlags =
    [
      "-DGMT_DOCDIR=share/doc/gmt"
      "-DGMT_MANDIR=share/man"
      "-DGMT_LIBDIR=lib"
@@ -46,14 +84,14 @@ stdenv.mkDerivation rec {
      "-DGMT_ENABLE_OPENMP:BOOL=TRUE"
      "-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
      "-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
  ] ++ (with stdenv;
    lib.optionals (!isDarwin) [
    ]
    ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
      "-DFFTW3_ROOT=${fftwSinglePrec.dev}"
      "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so"
      "-DBLAS_LIBRARY=${blas}/lib/libblas.so"
    ]);
    ];

  meta = with lib; {
  meta = {
    homepage = "https://www.generic-mapping-tools.org";
    description = "Tools for manipulating geographic and cartesian data sets";
    longDescription = ''
@@ -65,9 +103,9 @@ stdenv.mkDerivation rec {
      transformations and includes supporting data such as coastlines, rivers,
      and political boundaries and optionally country polygons.
    '';
    platforms = [ "x86_64-linux" "x86_64-darwin" ];
    license = licenses.lgpl3Plus;
    maintainers = with maintainers; [ tviti ];
    platforms = lib.platforms.unix;
    license = lib.licenses.lgpl3Plus;
    maintainers = with lib.maintainers; [ tviti ];
  };

}
})