diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix index 092d1cb431d6..ec70ab02b1da 100644 --- a/pkgs/applications/gis/gmt/default.nix +++ b/pkgs/applications/gis/gmt/default.nix @@ -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 ]; }; -} +})