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.
This commit is contained in:
Doron Behar 2024-09-29 10:17:01 +03:00
parent 7b067a12a8
commit ca6795545c

View File

@ -1,59 +1,97 @@
{ 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:
- ffmpeg for webm or mp4 output
- graphicsmagick for gif output
/*
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 [
Accelerate
CoreGraphics
CoreVideo
] else [
glibc
fftwSinglePrec
blas
lapack
]);
buildInputs =
[
curl
gdal
netcdf
pcre
dcw-gmt
gshhg-gmt
]
++ (
if stdenv.hostPlatform.isDarwin then
[
Accelerate
CoreGraphics
CoreVideo
]
else
[
glibc
fftwSinglePrec
blas
lapack
]
);
propagatedBuildInputs = [ ghostscript ];
propagatedBuildInputs = [
ghostscript
];
cmakeFlags = [
"-DGMT_DOCDIR=share/doc/gmt"
"-DGMT_MANDIR=share/man"
"-DGMT_LIBDIR=lib"
"-DCOPY_GSHHG:BOOL=FALSE"
"-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
"-DCOPY_DCW:BOOL=FALSE"
"-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
"-DGDAL_ROOT=${gdal.out}"
"-DNETCDF_ROOT=${netcdf.out}"
"-DPCRE_ROOT=${pcre.out}"
"-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
"-DGMT_ENABLE_OPENMP:BOOL=TRUE"
"-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
"-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
] ++ (with stdenv;
lib.optionals (!isDarwin) [
cmakeFlags =
[
"-DGMT_DOCDIR=share/doc/gmt"
"-DGMT_MANDIR=share/man"
"-DGMT_LIBDIR=lib"
"-DCOPY_GSHHG:BOOL=FALSE"
"-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
"-DCOPY_DCW:BOOL=FALSE"
"-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
"-DGDAL_ROOT=${gdal.out}"
"-DNETCDF_ROOT=${netcdf.out}"
"-DPCRE_ROOT=${pcre.out}"
"-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
"-DGMT_ENABLE_OPENMP:BOOL=TRUE"
"-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
"-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
]
++ 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 ];
};
}
})