diff --git a/pkgs/applications/gis/gmt/dcw.nix b/pkgs/applications/gis/gmt/dcw.nix new file mode 100644 index 000000000000..82889ae8a07c --- /dev/null +++ b/pkgs/applications/gis/gmt/dcw.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "dcw-gmt"; + version = "1.1.4"; + src = fetchurl { + url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz"; + sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3"; + }; + + installPhase = '' + mkdir -p $out/share/dcw-gmt + cp -rv ./* $out/share/dcw-gmt + ''; + + meta = with stdenv.lib; { + homepage = "https://www.soest.hawaii.edu/pwessel/dcw/"; + description = "Vector basemap of the world, for use with GMT"; + longDescription = '' + DCW-GMT is an enhancement to the original 1:1,000,000 scale vector basemap + of the world, available from the Princeton University Digital Map and + Geospatial Information Center. It contains more state boundaries (the + largest 8 countries are now represented) than the original data + source. Information about DCW can be found on Wikipedia + (https://en.wikipedia.org/wiki/Digital_Chart_of_the_World). This data is + for use by GMT, the Generic Mapping Tools. + ''; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ tviti ]; + }; + +} diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix new file mode 100644 index 000000000000..8c7c7687f3dd --- /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 ]; + }; + +} diff --git a/pkgs/applications/gis/gmt/gshhg.nix b/pkgs/applications/gis/gmt/gshhg.nix new file mode 100644 index 000000000000..89ace020033f --- /dev/null +++ b/pkgs/applications/gis/gmt/gshhg.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "gshhg-gmt"; + version = "2.3.7"; + src = fetchurl { + url = "ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-${version}.tar.gz"; + sha256 = "9bb1a956fca0718c083bef842e625797535a00ce81f175df08b042c2a92cfe7f"; + }; + + installPhase = '' + mkdir -p $out/share/gshhg-gmt + cp -rv ./* $out/share/gshhg-gmt + ''; + + meta = with stdenv.lib; { + homepage = "https://www.soest.hawaii.edu/pwessel/gshhg/"; + description = "High-resolution shoreline data set, for use with GMT"; + longDescription = '' + GSHHG is a high-resolution shoreline data set amalgamated from two + databases: Global Self-consistent Hierarchical High-resolution Shorelines + (GSHHS) and CIA World Data Bank II (WDBII). GSHHG contains vector + descriptions at five different resolutions of land outlines, lakes, + rivers, and political boundaries. This data is for use by GMT, the Generic + Mapping Tools. + ''; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ tviti ]; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a2e3a2cf4c9..d333d0b9d4ad 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1618,6 +1618,8 @@ in dconf = callPackage ../development/libraries/dconf { }; + dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { }; + ddar = callPackage ../tools/backup/ddar { }; ddate = callPackage ../tools/misc/ddate { }; @@ -1884,6 +1886,11 @@ in variant = "krita"; }; + gmt = callPackage ../applications/gis/gmt { + inherit (darwin.apple_sdk.frameworks) + Accelerate CoreGraphics CoreVideo; + }; + goa = callPackage ../development/tools/goa { }; gohai = callPackage ../tools/system/gohai { }; @@ -23590,6 +23597,8 @@ in gshogi = python3Packages.callPackage ../games/gshogi {}; + gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { }; + qtads = qt5.callPackage ../games/qtads { }; gtetrinet = callPackage ../games/gtetrinet {