summary refs log tree commit diff
path: root/pkgs/applications/misc/navit/default.nix
diff options
context:
space:
mode:
authorBignaux Ronan <ronan@aimao.org>2018-08-26 17:18:15 +0200
committerBignaux Ronan <ronan@aimao.org>2018-08-27 12:05:25 +0200
commit866f9bb578d48e14814a7ad557bece77d4191724 (patch)
treef35073362b1165cf37e0f24b8d13340a7ead8fd2 /pkgs/applications/misc/navit/default.nix
parentcca57171707ec2e367c3d9b158cd8cfd0766dd13 (diff)
downloadnixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar.gz
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar.bz2
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar.lz
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar.xz
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.tar.zst
nixlib-866f9bb578d48e14814a7ad557bece77d4191724.zip
navit: add supports, xkdb, and many fixes
Diffstat (limited to 'pkgs/applications/misc/navit/default.nix')
-rw-r--r--pkgs/applications/misc/navit/default.nix65
1 files changed, 48 insertions, 17 deletions
diff --git a/pkgs/applications/misc/navit/default.nix b/pkgs/applications/misc/navit/default.nix
index 4db5ed4f8eb6..5d591243f50d 100644
--- a/pkgs/applications/misc/navit/default.nix
+++ b/pkgs/applications/misc/navit/default.nix
@@ -1,9 +1,21 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, libGLU_combined,
-libXmu, freeglut, pcre, dbus-glib, glib, librsvg, freeimage, libxslt,
-qtbase, qtquickcontrols, qtsvg, qtdeclarative, qtlocation, qtsensors, qtmultimedia, qtspeech, espeak,
-cairo, gdk_pixbuf, pango, atk, patchelf, fetchurl, bzip2,
-python, gettext, quesoglc, gd, postgresql, cmake, shapelib, SDL_ttf, fribidi}:
+{ 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
+}:
 
+assert speechdSupport -> speechd != null;
+
+with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "navit-${version}";
   version = "0.5.1";
@@ -21,34 +33,53 @@ stdenv.mkDerivation rec {
     sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
   };
 
-  #hardeningDisable = [ "format" ];
-  NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ];
+  patches = [ ./CMakeLists.txt.patch ];
+
+  NIX_CFLAGS_COMPILE = optional sdlSupport "-I${SDL.dev}/include/SDL"
+    ++ optional speechdSupport "-I${speechd}/include/speech-dispatcher";
 
-  # TODO: fix speech options.
-  cmakeFlags = [ "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-Dsupport/espeak=FALSE" "-Dspeech/qt5_espeak=FALSE" ];
+  # we choose only cmdline and speech-dispatcher speech options.
+  # espeak builtins is made for non-cmdline OS as winCE
+  cmakeFlags = [
+    "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+    "-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
+  ];
 
-  buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image libGLU_combined freeimage libxslt
-    libXmu freeglut python gettext quesoglc gd postgresql qtbase SDL_ttf fribidi pcre qtquickcontrols
-    espeak qtmultimedia qtspeech qtsensors qtlocation qtdeclarative qtsvg dbus-glib librsvg shapelib glib 
-    cairo gdk_pixbuf pango atk ];
+  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
+  ];
 
-  nativeBuildInputs = [ pkgconfig cmake patchelf bzip2 ];
+  nativeBuildInputs = [ makeWrapper pkgconfig cmake patchelf bzip2 ];
 
   # we dont want blank screen by defaut
   postInstall = ''
     # emulate DSAMPLE_MAP
-    mkdir -p $out/share/navit/maps/maps
+    mkdir -p $out/share/navit/maps/
     bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
   '';
 
   # TODO: fix upstream?
   postFixup = ''
     for lib in $(find "$out/lib/navit/" -iname "*.so" ); do
-      patchelf --set-rpath ${stdenv.lib.makeLibraryPath buildInputs} $lib
+      patchelf --set-rpath ${makeLibraryPath buildInputs} $lib
     done
+    wrapProgram $out/bin/navit \
+      --prefix PATH : ${makeBinPath (
+        optional xkbdSupport xkbd
+        ++ optional espeakSupport espeak
+        ++ optional speechdSupport speechd ) }
   '';
 
-  meta = with stdenv.lib; {
+  meta = {
     homepage = http://www.navit-project.org;
     description = "Car navigation system with routing engine using OSM maps";
     license = licenses.gpl2;