diff options
Diffstat (limited to 'pkgs/applications/gis/gmt/default.nix')
-rw-r--r-- | pkgs/applications/gis/gmt/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix new file mode 100644 index 00000000000..8c7c7687f3d --- /dev/null +++ b/pkgs/applications/gis/gmt/default.nix @@ -0,0 +1,73 @@ +{ stdenv, fetchurl, 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 +*/ + +stdenv.mkDerivation rec { + pname = "gmt"; + version = "6.1.0"; + src = fetchurl { + url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz"; + sha256 = "0vzxzpvbf1sqma2airsibxvqb9m4sajm7jsfr7rrv6q7924c7ijw"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ] + ++ (if stdenv.isDarwin then [ + Accelerate + CoreGraphics + CoreVideo + ] else [ + glibc + fftwSinglePrec + blas + lapack + ]); + + 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.optional (!isDarwin) [ + "-DFFTW3_ROOT=${fftwSinglePrec.dev}" + "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so" + "-DBLAS_LIBRARY=${blas}/lib/libblas.so" + ]); + + meta = with stdenv.lib; { + homepage = "https://www.generic-mapping-tools.org"; + description = "Tools for manipulating geographic and cartesian data sets"; + longDescription = '' + GMT is an open-source collection of command-line tools for manipulating + geographic and Cartesian data sets (including filtering, trend fitting, + gridding, projecting, etc.) and producing high-quality illustrations + ranging from simple x–y plots via contour maps to artificially illuminated + surfaces and 3D perspective views. It supports many map projections and + 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 ]; + }; + +} |