nixpkgs/pkgs/applications/misc/navit/default.nix

91 lines
3.0 KiB
Nix
Raw Normal View History

{ stdenv, fetchFromGitHub, pkgconfig, gtk2, fontconfig, freetype, imlib2
, SDL_image, libGLU_combined, libXmu, freeglut, pcre, dbus, dbus-glib, glib
, librsvg, freeimage, libxslt, cairo, gdk_pixbuf, pango
, atk, patchelf, fetchurl, bzip2, python, gettext, quesoglc
, gd, cmake, shapelib, SDL_ttf, fribidi, makeWrapper
, qtquickcontrols, qtmultimedia, qtspeech, qtsensors
, qtlocation, qtdeclarative, qtsvg
, qtSupport ? false, qtbase #need to fix qt_qpainter
, sdlSupport ? true, SDL
, xkbdSupport ? true, xkbd
, espeakSupport ? true, espeak
, postgresqlSupport ? false, postgresql
, speechdSupport ? false, speechd ? null
}:
2018-08-22 19:10:32 +01:00
assert speechdSupport -> speechd != null;
with stdenv.lib;
stdenv.mkDerivation rec {
2018-08-22 19:10:32 +01:00
name = "navit-${version}";
2018-09-01 13:06:47 +01:00
version = "0.5.3";
2018-08-22 19:10:32 +01:00
src = fetchFromGitHub {
owner = "navit-gps";
repo = "navit";
rev = "v${version}";
2018-09-01 13:06:47 +01:00
sha256 = "071drvqzxpxbfh0lf0lra5a97rv8ny40l96n9xl0dx0s8w30j61i";
2018-08-22 19:10:32 +01:00
};
2018-08-22 19:10:32 +01:00
sample_map = fetchurl {
url = "http://www.navit-project.org/maps/osm_bbox_11.3,47.9,11.7,48.2.osm.bz2";
name = "sample_map.bz2";
sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
};
patches = [ ./CMakeLists.txt.patch ];
NIX_CFLAGS_COMPILE = optional sdlSupport "-I${SDL.dev}/include/SDL"
++ optional speechdSupport "-I${speechd}/include/speech-dispatcher";
2016-02-12 13:04:31 +00:00
# we choose only cmdline and speech-dispatcher speech options.
# espeak builtins is made for non-cmdline OS as winCE
cmakeFlags = [
2018-09-01 13:06:47 +01:00
"-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=Release"
"-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
];
2016-08-27 22:58:06 +01:00
buildInputs = [
gtk2 fontconfig freetype imlib2 libGLU_combined freeimage
libxslt libXmu freeglut python gettext quesoglc gd
fribidi pcre dbus dbus-glib librsvg shapelib glib
cairo gdk_pixbuf pango atk
] ++ optionals sdlSupport [ SDL SDL_ttf SDL_image ]
++ optional postgresqlSupport postgresql
++ optional speechdSupport speechd
++ optionals qtSupport [
qtquickcontrols qtmultimedia qtspeech qtsensors
qtbase qtlocation qtdeclarative qtsvg
];
2016-08-27 22:58:06 +01:00
nativeBuildInputs = [ makeWrapper pkgconfig cmake patchelf bzip2 ];
2018-08-22 19:10:32 +01:00
# we dont want blank screen by defaut
postInstall = ''
# emulate DSAMPLE_MAP
mkdir -p $out/share/navit/maps/
2018-08-22 19:10:32 +01:00
bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
'';
2018-08-22 19:10:32 +01:00
# TODO: fix upstream?
2018-08-27 22:26:06 +01:00
libPath = stdenv.lib.makeLibraryPath ([ stdenv.cc.libc ] ++ buildInputs );
2018-08-31 13:14:07 +01:00
postFixup =
''
2018-09-01 13:06:47 +01:00
find "$out/lib" -type f -name "*.so" -exec patchelf --set-rpath $libPath {} \;
2018-08-27 22:26:06 +01:00
wrapProgram $out/bin/navit \
--prefix PATH : ${makeBinPath (
optional xkbdSupport xkbd
++ optional espeakSupport espeak
++ optional speechdSupport speechd ) }
2018-08-22 19:10:32 +01:00
'';
meta = {
homepage = https://www.navit-project.org;
description = "Car navigation system with routing engine using OSM maps";
2018-08-22 19:10:32 +01:00
license = licenses.gpl2;
maintainers = [ maintainers.genesis ];
platforms = platforms.linux;
};
}