diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/valhalla')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/valhalla/default.nix | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/valhalla/default.nix b/nixpkgs/pkgs/development/libraries/valhalla/default.nix new file mode 100644 index 000000000000..3a699cd0823d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/valhalla/default.nix @@ -0,0 +1,102 @@ +{ 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; + }; +}) |