103 lines
2.2 KiB
Nix
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;
|
||
|
};
|
||
|
})
|