nixpkgs/pkgs/development/libraries/valhalla/default.nix
2024-01-14 12:30:43 -05:00

103 lines
2.2 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, pkg-config
, boost
, curl
, geos
, libspatialite
, luajit
, prime-server
, protobuf
, python3
, sqlite
, zeromq
, zlib
, testers
}:
stdenv.mkDerivation (finalAttrs: {
pname = "valhalla";
version = "3.4.0";
src = fetchFromGitHub {
owner = "valhalla";
repo = "valhalla";
rev = finalAttrs.version;
hash = "sha256-1X9vsWsgnzmXn7bCMhN2PNwtfV0RRdzRFZIrQN2PLfA=";
fetchSubmodules = true;
};
patches = [
# Fix build
(fetchpatch {
url = "https://github.com/valhalla/valhalla/commit/e4845b68e8ef8de9eabb359b23bf34c879e21f2b.patch";
hash = "sha256-xCufmXHGj1JxaMwm64JT9FPY+o0+x4glfJSYLdvHI8U=";
})
# Fix gcc-13 build:
# https://github.com/valhalla/valhalla/pull/4154
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/valhalla/valhalla/commit/ed93f30272377cc6803533a1bb94fe81d14af81c.patch";
hash = "sha256-w4pnOqk/Jj3unVuesE64QSecrUIVSqwK69t9xNVc4GA=";
})
];
postPatch = ''
substituteInPlace src/bindings/python/CMakeLists.txt \
--replace "\''${Python_SITEARCH}" "${placeholder "out"}/${python3.sitePackages}"
'';
nativeBuildInputs = [
cmake
pkg-config
];
cmakeFlags = [
"-DENABLE_TESTS=OFF"
"-DENABLE_BENCHMARKS=OFF"
];
env.NIX_CFLAGS_COMPILE = toString [
# Needed for date submodule with GCC 12 https://github.com/HowardHinnant/date/issues/750
"-Wno-error=stringop-overflow"
];
buildInputs = [
boost
curl
geos
libspatialite
luajit
prime-server
protobuf
python3
sqlite
zeromq
zlib
];
postFixup = ''
substituteInPlace "$out"/lib/pkgconfig/libvalhalla.pc \
--replace '=''${prefix}//' '=/' \
--replace '=''${exec_prefix}//' '=/'
'';
passthru.tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; {
changelog = "https://github.com/valhalla/valhalla/blob/${finalAttrs.src.rev}/CHANGELOG.md";
description = "Open Source Routing Engine for OpenStreetMap";
homepage = "https://valhalla.readthedocs.io/";
license = licenses.mit;
maintainers = [ maintainers.Thra11 ];
pkgConfigModules = [ "libvalhalla" ];
platforms = platforms.linux;
};
})