chatdesk-ui/postgres_15.8.1.044/nix/ext/pgrouting.nix

61 lines
2.1 KiB
Nix

{ lib, stdenv, fetchFromGitHub, postgresql, perl, cmake, boost }:
stdenv.mkDerivation rec {
pname = "pgrouting";
version = "3.4.1";
nativeBuildInputs = [ cmake perl ];
buildInputs = [ postgresql boost ];
src = fetchFromGitHub {
owner = "pgRouting";
repo = pname;
rev = "v${version}";
hash = "sha256-QC77AnPGpPQGEWi6JtJdiNsB2su5+aV2pKg5ImR2B0k=";
};
#disable compile time warnings for incompatible pointer types only on macos and pg16
NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && lib.versionAtLeast postgresql.version "16")
"-Wno-error=int-conversion -Wno-error=incompatible-pointer-types";
cmakeFlags = [
"-DPOSTGRESQL_VERSION=${postgresql.version}"
] ++ lib.optionals (stdenv.isDarwin && lib.versionAtLeast postgresql.version "16") [
"-DCMAKE_MACOSX_RPATH=ON"
"-DCMAKE_SHARED_MODULE_SUFFIX=.dylib"
"-DCMAKE_SHARED_LIBRARY_SUFFIX=.dylib"
];
preConfigure = lib.optionalString (stdenv.isDarwin && lib.versionAtLeast postgresql.version "16") ''
export DLSUFFIX=.dylib
export CMAKE_SHARED_LIBRARY_SUFFIX=.dylib
export CMAKE_SHARED_MODULE_SUFFIX=.dylib
export MACOSX_RPATH=ON
'';
postBuild = lib.optionalString (stdenv.isDarwin && lib.versionAtLeast postgresql.version "16") ''
shopt -s nullglob
for file in lib/libpgrouting-*.so; do
if [ -f "$file" ]; then
mv "$file" "''${file%.so}.dylib"
fi
done
shopt -u nullglob
'';
installPhase = ''
install -D lib/*${postgresql.dlSuffix} -t $out/lib
install -D sql/pgrouting--*.sql -t $out/share/postgresql/extension
install -D sql/common/pgrouting.control -t $out/share/postgresql/extension
'';
meta = with lib; {
description = "A PostgreSQL/PostGIS extension that provides geospatial routing functionality";
homepage = "https://pgrouting.org/";
changelog = "https://github.com/pgRouting/pgrouting/releases/tag/v${version}";
maintainers = with maintainers; [ steve-chavez samrose ];
platforms = postgresql.meta.platforms;
license = licenses.gpl2Plus;
};
}