1{ lib
2, stdenv
3, fetchurl
4, pkg-config
5, validatePkgConfig
6, freexl
7, geos
8, librttopo
9, libxml2
10, minizip
11, proj
12, sqlite
13, libiconv
14}:
15
16stdenv.mkDerivation rec {
17 pname = "libspatialite";
18 version = "5.0.1";
19
20 outputs = [ "out" "dev" ];
21
22 src = fetchurl {
23 url = "https://www.gaia-gis.it/gaia-sins/libspatialite-${version}.tar.gz";
24 hash = "sha256-7svJQxHHgBLQWevA+uhupe9u7LEzA+boKzdTwbNAnpg=";
25 };
26
27 nativeBuildInputs = [
28 pkg-config
29 validatePkgConfig
30 geos # for geos-config
31 ];
32
33 buildInputs = [
34 freexl
35 geos
36 librttopo
37 libxml2
38 minizip
39 proj
40 sqlite
41 ] ++ lib.optionals stdenv.isDarwin [
42 libiconv
43 ];
44
45 enableParallelBuilding = true;
46
47 postInstall = lib.optionalString stdenv.isDarwin ''
48 ln -s $out/lib/mod_spatialite.{so,dylib}
49 '';
50
51 # Failed tests (linux & darwin):
52 # - check_virtualtable6
53 # - check_drop_rename
54 doCheck = false;
55
56 preCheck = ''
57 export LD_LIBRARY_PATH=$(pwd)/src/.libs
58 export DYLD_LIBRARY_PATH=$(pwd)/src/.libs
59 '';
60
61 meta = with lib; {
62 description = "Extensible spatial index library in C++";
63 homepage = "https://www.gaia-gis.it/fossil/libspatialite";
64 # They allow any of these
65 license = with licenses; [ gpl2Plus lgpl21Plus mpl11 ];
66 platforms = platforms.unix;
67 maintainers = with maintainers; [ dotlambda ];
68 };
69}