1{
2 lib,
3 stdenv,
4 callPackage,
5 fetchFromGitHub,
6 testers,
7
8 cmake,
9}:
10
11stdenv.mkDerivation (finalAttrs: {
12 pname = "geos";
13 version = "3.13.1";
14
15 src = fetchFromGitHub {
16 owner = "libgeos";
17 repo = "geos";
18 tag = finalAttrs.version;
19 hash = "sha256-zPVP01AMIBKMnKi6Sq++CIaVZb5JA1v8/QAdGzKdL8Y=";
20 };
21
22 nativeBuildInputs = [ cmake ];
23
24 # https://github.com/libgeos/geos/issues/930
25 cmakeFlags = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
26 "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;unit-geom-Envelope"
27 ];
28
29 doCheck = true;
30
31 passthru.tests = {
32 pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
33 geos = callPackage ./tests.nix { geos = finalAttrs.finalPackage; };
34 };
35
36 meta = with lib; {
37 description = "C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software";
38 homepage = "https://libgeos.org";
39 license = licenses.lgpl21Only;
40 mainProgram = "geosop";
41 teams = [ teams.geospatial ];
42 pkgConfigModules = [ "geos" ];
43 changelog = "https://github.com/libgeos/geos/releases/tag/${finalAttrs.finalPackage.version}";
44 };
45})