From 449e5530c4ee68f77691c811f0670cf90e9e58a4 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Thu, 31 Dec 2015 01:58:27 -0800 Subject: Removing autotools support --- Makefile.am | 25 - Makefile.inc | 15 - autogen.sh | 20 - configure.in | 1336 --------------------------- man/Makefile.am | 1 - navit/Makefile.am | 247 ----- navit/autoload/Makefile.am | 6 - navit/autoload/osso/Makefile.am | 6 - navit/binding/Makefile.am | 15 - navit/binding/dbus/Makefile.am | 18 - navit/binding/python/Makefile.am | 6 - navit/binding/win32/Makefile.am | 15 - navit/fib-1.1/Makefile.am | 3 - navit/font/Makefile.am | 4 - navit/font/freetype/Makefile.am | 9 - navit/fonts/Makefile.am | 15 - navit/graphics/Makefile.am | 25 - navit/graphics/android/Makefile.am | 9 - navit/graphics/gd/Makefile.am | 9 - navit/graphics/gtk_drawing_area/Makefile.am | 5 - navit/graphics/null/Makefile.am | 9 - navit/graphics/opengl/Makefile.am | 6 - navit/graphics/qt_qpainter/Makefile.am | 13 - navit/graphics/sdl/Makefile.am | 5 - navit/graphics/win32/Makefile.am | 12 - navit/gui/Makefile.am | 13 - navit/gui/gtk/Makefile.am | 6 - navit/gui/internal/Makefile.am | 10 - navit/gui/qml/Makefile.am | 14 - navit/gui/qml/skins/Makefile.am | 1 - navit/gui/qml/skins/navit/Makefile.am | 9 - navit/gui/win32/Makefile.am | 10 - navit/map/Makefile.am | 24 - navit/map/binfile/Makefile.am | 9 - navit/map/csv/Makefile.am | 9 - navit/map/filter/Makefile.am | 9 - navit/map/garmin/Makefile.am | 33 - navit/map/garmin_img/Makefile.am | 5 - navit/map/mg/Makefile.am | 9 - navit/map/shapefile/Makefile.am | 14 - navit/map/textfile/Makefile.am | 9 - navit/maps/Makefile.am | 51 - navit/maptool/Makefile.am | 10 - navit/osd/Makefile.am | 6 - navit/osd/core/Makefile.am | 10 - navit/plugin/Makefile.am | 6 - navit/plugin/pedestrian/Makefile.am | 11 - navit/speech/Makefile.am | 16 - navit/speech/android/Makefile.am | 17 - navit/speech/cmdline/Makefile.am | 9 - navit/speech/dbus/Makefile.am | 5 - navit/speech/espeak/Makefile.am | 13 - navit/speech/speech_dispatcher/Makefile.am | 6 - navit/support/Makefile.am | 32 - navit/support/espeak/Makefile.am | 67 -- navit/support/ezxml/Makefile.am | 4 - navit/support/gettext_intl/Makefile.in | 493 ---------- navit/support/glib/Makefile.am | 9 - navit/support/libc/Makefile.am | 8 - navit/support/libpng/Makefile.am | 8 - navit/support/shapefile/Makefile.am | 4 - navit/support/win32/Makefile.am | 5 - navit/support/wordexp/Makefile.am | 4 - navit/support/zlib/Makefile.am | 4 - navit/tools/gpx2navit_txt/Makefile.am | 27 - navit/tools/gpx2navit_txt/man/Makefile.am | 2 - navit/tools/gpx2navit_txt/src/Makefile.am | 26 - navit/vehicle/Makefile.am | 34 - navit/vehicle/android/Makefile.am | 5 - navit/vehicle/demo/Makefile.am | 9 - navit/vehicle/file/Makefile.am | 15 - navit/vehicle/gpsd/Makefile.am | 6 - navit/vehicle/gpsd_dbus/Makefile.am | 6 - navit/vehicle/gypsy/Makefile.am | 6 - navit/vehicle/iphone/Makefile.am | 6 - navit/vehicle/maemo/Makefile.am | 6 - navit/vehicle/null/Makefile.am | 9 - navit/vehicle/webos/Makefile.am | 5 - navit/vehicle/wince/Makefile.am | 9 - navit/xpm/Makefile.am | 340 ------- po/Makefile.am | 114 --- 81 files changed, 3441 deletions(-) delete mode 100644 Makefile.am delete mode 100644 Makefile.inc delete mode 100755 autogen.sh delete mode 100644 configure.in delete mode 100644 man/Makefile.am delete mode 100644 navit/Makefile.am delete mode 100644 navit/autoload/Makefile.am delete mode 100644 navit/autoload/osso/Makefile.am delete mode 100644 navit/binding/Makefile.am delete mode 100644 navit/binding/dbus/Makefile.am delete mode 100644 navit/binding/python/Makefile.am delete mode 100644 navit/binding/win32/Makefile.am delete mode 100644 navit/fib-1.1/Makefile.am delete mode 100644 navit/font/Makefile.am delete mode 100644 navit/font/freetype/Makefile.am delete mode 100644 navit/fonts/Makefile.am delete mode 100644 navit/graphics/Makefile.am delete mode 100644 navit/graphics/android/Makefile.am delete mode 100644 navit/graphics/gd/Makefile.am delete mode 100644 navit/graphics/gtk_drawing_area/Makefile.am delete mode 100644 navit/graphics/null/Makefile.am delete mode 100644 navit/graphics/opengl/Makefile.am delete mode 100644 navit/graphics/qt_qpainter/Makefile.am delete mode 100644 navit/graphics/sdl/Makefile.am delete mode 100644 navit/graphics/win32/Makefile.am delete mode 100644 navit/gui/Makefile.am delete mode 100644 navit/gui/gtk/Makefile.am delete mode 100644 navit/gui/internal/Makefile.am delete mode 100644 navit/gui/qml/Makefile.am delete mode 100644 navit/gui/qml/skins/Makefile.am delete mode 100644 navit/gui/qml/skins/navit/Makefile.am delete mode 100644 navit/gui/win32/Makefile.am delete mode 100644 navit/map/Makefile.am delete mode 100644 navit/map/binfile/Makefile.am delete mode 100644 navit/map/csv/Makefile.am delete mode 100644 navit/map/filter/Makefile.am delete mode 100644 navit/map/garmin/Makefile.am delete mode 100644 navit/map/garmin_img/Makefile.am delete mode 100644 navit/map/mg/Makefile.am delete mode 100644 navit/map/shapefile/Makefile.am delete mode 100644 navit/map/textfile/Makefile.am delete mode 100644 navit/maps/Makefile.am delete mode 100644 navit/maptool/Makefile.am delete mode 100644 navit/osd/Makefile.am delete mode 100644 navit/osd/core/Makefile.am delete mode 100644 navit/plugin/Makefile.am delete mode 100644 navit/plugin/pedestrian/Makefile.am delete mode 100644 navit/speech/Makefile.am delete mode 100644 navit/speech/android/Makefile.am delete mode 100644 navit/speech/cmdline/Makefile.am delete mode 100644 navit/speech/dbus/Makefile.am delete mode 100644 navit/speech/espeak/Makefile.am delete mode 100644 navit/speech/speech_dispatcher/Makefile.am delete mode 100644 navit/support/Makefile.am delete mode 100755 navit/support/espeak/Makefile.am delete mode 100644 navit/support/ezxml/Makefile.am delete mode 100644 navit/support/gettext_intl/Makefile.in delete mode 100644 navit/support/glib/Makefile.am delete mode 100644 navit/support/libc/Makefile.am delete mode 100644 navit/support/libpng/Makefile.am delete mode 100644 navit/support/shapefile/Makefile.am delete mode 100644 navit/support/win32/Makefile.am delete mode 100644 navit/support/wordexp/Makefile.am delete mode 100644 navit/support/zlib/Makefile.am delete mode 100644 navit/tools/gpx2navit_txt/Makefile.am delete mode 100644 navit/tools/gpx2navit_txt/man/Makefile.am delete mode 100644 navit/tools/gpx2navit_txt/src/Makefile.am delete mode 100644 navit/vehicle/Makefile.am delete mode 100644 navit/vehicle/android/Makefile.am delete mode 100644 navit/vehicle/demo/Makefile.am delete mode 100644 navit/vehicle/file/Makefile.am delete mode 100644 navit/vehicle/gpsd/Makefile.am delete mode 100644 navit/vehicle/gpsd_dbus/Makefile.am delete mode 100644 navit/vehicle/gypsy/Makefile.am delete mode 100644 navit/vehicle/iphone/Makefile.am delete mode 100644 navit/vehicle/maemo/Makefile.am delete mode 100644 navit/vehicle/null/Makefile.am delete mode 100644 navit/vehicle/webos/Makefile.am delete mode 100644 navit/vehicle/wince/Makefile.am delete mode 100644 navit/xpm/Makefile.am delete mode 100644 po/Makefile.am diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 7bc7d34d3..000000000 --- a/Makefile.am +++ /dev/null @@ -1,25 +0,0 @@ -ACLOCAL_AMFLAGS= -I m4 -include $(top_srcdir)/Makefile.inc -SUBDIRS= -if USE_NATIVE_LANGUAGE_SUPPORT -XCFLAGS=-DINSTALLPREFIX=INSTALLDIR -if SUPPORT_WIN32 -XCFLAGS+=-DSUBLANG_BENGALI_BANGLADESH=0x03 -DSUBLANG_PUNJABI_PAKISTAN=0x03 -DSUBLANG_ROMANIAN_MOLDOVA=0x03 -if SUPPORT_WIN32CE -if SHARED_LIBNAVIT -XCFLAGS+=-L../navit/support/libc -lsupport_libc -AM_MAKEFLAGS=l=l -SUBDIRS+=navit/support/libc -endif -endif -endif -if SUPPORT_ANDROID -XCFLAGS+=-Xcompiler -nostartfiles -endif -export XCFLAGS -SUBDIRS+=intl po man -endif -SUBDIRS+=navit -pkgdoc_DATA = README -EXTRA_DIST = README COPYRIGHT LGPL-2 GPL-2 COPYING INSTALL contrib/android_build.sh contrib/sjjb_import.pl -DIST_SUBDIRS=intl po navit man diff --git a/Makefile.inc b/Makefile.inc deleted file mode 100644 index 22fd8023e..000000000 --- a/Makefile.inc +++ /dev/null @@ -1,15 +0,0 @@ -modulebindingdir=$(pkglibdir)/binding -modulemapdir=$(pkglibdir)/map -modulefontdir=$(pkglibdir)/font -modulegraphicsdir=$(pkglibdir)/graphics -moduleguidir=$(pkglibdir)/gui -modulespeechdir=$(pkglibdir)/speech -moduleosddir=$(pkglibdir)/osd -modulevehicledir=$(pkglibdir)/vehicle -moduleplugindir=$(pkglibdir)/plugin -moduleautoloaddir=$(pkglibdir)/autoload -pkgdocdir=$(pkgdatadir) -imagedir=$(pkgdatadir)/xpm -skinsdir=$(pkgdatadir)/skins -fontsdir=$(pkgdatadir)/fonts -mapsdir=$(pkgdatadir)/maps diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 9638fd9ee..000000000 --- a/autogen.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -if [ `uname` = Darwin ]; then - LIBTOOL=glibtool -else - LIBTOOL=libtool -fi - -for pkg in pkg-config $LIBTOOL automake aclocal autoreconf:autoconf autopoint:gettext -do - if ! ${pkg%%:*} --version >/dev/null - then - echo "You need to install ${pkg##*:}" - exit 1 - fi -done - -autoreconf --install -I m4 "$@" -echo "***** WARNING *****" -echo "Support for autotools will be removed soon from navit, please use cmake instead" -sleep 5 diff --git a/configure.in b/configure.in deleted file mode 100644 index 67eca74c1..000000000 --- a/configure.in +++ /dev/null @@ -1,1336 +0,0 @@ -AC_INIT(navit, 0.5.0) -AC_CONFIG_MACRO_DIR([m4]) -SOURCE_MODE=svn - -AM_INIT_AUTOMAKE -AM_CONFIG_HEADER(config.h) - -AC_SUBST(SOURCE_MODE) -AM_CONDITIONAL(SOURCE_MODE_SVN, [test "x${SOURCE_MODE}" = "xsvn"]) - -if test "x${SOURCE_MODE}" = "xsvn" ; then - USE_MAINTAINER_MODE=yes -else - USE_MAINTAINER_MODE=no -fi - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is enabled by default (reason of inclusion of this function) - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -AM_MAINTAINER_MODE - - -plugins=yes; plugins_reason=default -postgresql=yes; postgresql_reason=default -samplemap=yes; samplemap_reason=default -binding_dbus=yes; binding_dbus_reason=default -binding_dbus_use_system_bus=no -binding_python=yes; binding_python_reason=default -binding_win32=no; binding_win32_reason=default -font_freetype=yes; font_freetype_reason=default -fontconfig=yes; fontconfig_reason=default -fribidi=yes; fribidi_reason=default -gui_gtk=no; gui_gtk_reason=default -gui_win32=no; gui_win32_reason=default -gui_internal=yes; gui_internal_reason=default -gui_qml=no; gui_qml_reason=default -graphics=yes; graphics_reason=default -graphics_gd=no; graphics_gd_reason=default -graphics_gtk_drawing_area=no; graphics_gtk_drawing_area_reason=default -graphics_qt_qpainter=yes; graphics_qt_qpainter_reason=default -graphics_null=yes; graphics_null_reason=default -graphics_opengl=yes; graphics_opengl_reason=default -graphics_sdl=yes; graphics_sdl_reason=default -graphics_win32=no; graphics_win32_reason=default -maptool=yes; maptool_reason=default -map_binfile=yes; map_binfile_reason=default -map_filter=yes; map_filter_reason=default -map_mg=yes; map_mg_reason=default -map_shapefile=yes; map_shapefile_reason=default -map_textfile=yes; map_textfile_reason=default -map_csv=yes; map_csv_reason=default -osd_core=yes; osd_core_reason=default -plugin_pedestrian=no; plugin_pedestrian_reason=default -routing=yes; routing_reason=default -speech_android=no; speech_android_reason=default -speech_cmdline=yes; speech_cmdline_reason=default -speech_dbus=no; speech_dbus_reason=default -speech_espeak=no; speech_espeak_reason=default -speech_speech_dispatcher=yes; speech_speech_dispatcher_reason=default -vehicle_demo=yes; vehicle_demo_reason=default -vehicle_file=yes; vehicle_file_reason=default -vehicle_gpsd=yes; vehicle_gpsd_reason=default -vehicle_gpsd_dbus=no; vehicle_gpsd_dbus_reason=default -vehicle_gypsy=yes; vehicle_gypsy_reason=default -vehicle_null=no; vehicle_null_reason=default -vehicle_wince=no; vehicle_wince_reason=default -vehicle_iphone=no; vehicle_iphone_reason=default -vehicle_android=no; vehicle_android_reason=default -graphics_android=no; graphics_android_reason=default -vehicle_maemo=no; vehicle_maemo_reason=default -vehicle_webos=no; vehicle_webos_reason=default - -shared_libnavit=no -LIBNAVIT=navit -bin_navit=yes - -AC_CANONICAL_HOST -win32=no -win32ce=no -case $host_os in -wince|mingw32ce|cegcc) - win32=yes - win32ce=yes - AC_DEFINE(HAVE_API_WIN32_BASE, 1, [Have Windows Base API]) - AC_DEFINE(HAVE_API_WIN32_CE, 1, [Have Windows CE API]) - AC_DEFINE(HAVE_PRAGMA_PACK, 1, [Have pragma pack]) - binding_win32=yes; binding_win32_reason="host_os is wince" - gui_win32=yes; gui_win32_reason="host_os is wince" - graphics_win32=yes; graphics_win32_reason="host_os is wince" - vehicle_wince=yes; vehcile_wince_reason="host_os is wince" - speech_espeak=yes; speech_espeak_reason="host_os is wince" - support_libpng=yes - maptool=no; maptool_reason="host_os is wince" - ;; -mingw32) - win32=yes - AC_DEFINE(HAVE_API_WIN32_BASE, 1, [Have Windows Base API]) - AC_DEFINE(HAVE_API_WIN32, 1, [Have Windows API]) - binding_win32=yes; binding_win32_reason="host_os is mingw32" - gui_win32=yes; gui_win32_reason="host_os is mingw32" - graphics_win32=yes; graphics_win32_reason="host_os is mingw32" - speech_espeak=yes; speech_espeak_reason="host_os is mingw32" - support_libpng=yes - ;; -linux*_android) - android=yes - shared_libnavit=yes - bin_navit=no - AC_DEFINE(HAVE_API_ANDROID, 1, [Have Android API]) - echo "void dl_unwind_find_exidx(void) {}" >crt0.c - $CC -c crt0.c - $AR r libg.a crt0.o - vehicle_android=yes; vehicle_android_reason="host_os is android" - graphics_android=yes; graphics_android_reason="host_os is android" - speech_android=yes; speech_android_reason="host_os is android" - MODULE_LDFLAGS="-module -Xcompiler -nostdlib -Xcompiler -Wl,-rpath -Xcompiler -Wl,/data/data/org.navitproject.navit/lib" - MODULE_LIBADD="-llog" - LIBNAVIT=_data_data_org.navitproject.navit_lib_navit - NAVIT_MODULE_LDFLAGS="$MODULE_LDFLAGS -L\$(top_builddir)/navit -l$LIBNAVIT" - ;; -esac -if test "x$win32" = "xyes" -then - NAVIT_CFLAGS="$NAVIT_CFLAGS -I\$(top_srcdir)/navit/support/win32" - NAVIT_LIBS="$NAVIT_LIBS -L\$(top_builddir)/navit/support/win32 -lsupport_win32" - NAVIT_SOCKET_LDFLAGS="$MODULE_LDFLAGS -lws2_32" -fi - - -AM_CONDITIONAL(SUPPORT_WIN32, [test "x$win32" = "xyes"]) -AM_CONDITIONAL(SUPPORT_WIN32CE, [test "x$win32ce" = "xyes"]) -AM_CONDITIONAL(SUPPORT_ANDROID, [test "x$android" = "xyes"]) - -if test "x$support_libpng" = "xyes" -then - NAVIT_CFLAGS="$NAVIT_CFLAGS -I\$(top_srcdir)/navit/support/libpng" - NAVIT_LIBS="$NAVIT_LIBS -L\$(top_builddir)/navit/support/libpng -lsupport_libpng" -fi -AM_CONDITIONAL(SUPPORT_LIBPNG, [test "x$support_libpng" = "xyes"]) - -AC_SUBST(MODULE_LDFLAGS) -AC_SUBST(MODULE_LIBADD) -AC_SUBST(NAVIT_MODULE_LDFLAGS) -AC_SUBST(NAVIT_SOCKET_LDFLAGS) - -LIBS="$LIBS -lm" -if test "$win32" == "no" -a test "$host_os" != "cygwin"; then - LIBS="$LIBS -rdynamic" -fi - -m4_ifndef([AC_USE_SYSTEM_EXTENSIONS], - [AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], [AC_GNU_SOURCE])]) - -AC_USE_SYSTEM_EXTENSIONS - -m4_ifdef([AC_PROG_OBJC],[AC_PROG_OBJC]) -AC_PROG_CC -m4_ifdef([AC_PROG_OBJC],[AC_PROG_OBJC],[AC_SUBST([OBJC],["$CC"]) -AC_SUBST([OBJCFLAGS],["$CFLAGS"])]) -m4_ifndef([AC_PROG_OBJC],[_AM_DEPENDENCIES(OBJC)]) - -if eval "test x`uname` = xDarwin"; then - CFLAGS="$CFLAGS -I/opt/local/include -L/opt/local/lib" -fi -if eval "test x$GCC = xyes"; then - CFLAGS="$CFLAGS -Wall -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type -D_GNU_SOURCE" -fi -AM_PROG_CC_C_O - -AC_PROG_CXX -if eval "test x$GXX = xyes"; then - CXXFLAGS="$CXXFLAGS -Wall -Wcast-align -Wpointer-arith -Wreturn-type -D_GNU_SOURCE" -fi - -PKG_CHECK_EXISTS -if test "x${cross_compiling}" = "xyes"; then - samplemap="no";samplemap_reason="not supported for cross compiling" - binding_python="no";binding_python_reason="not supported for cross compiling" - postgresql="no";postgresql_reason="not supported for cross compiling" - AC_MSG_CHECKING([for a C compiler for build tools]) - AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc) -else - CC_FOR_BUILD=$CC -fi -CCLD_FOR_BUILD="$CC_FOR_BUILD" -AC_SUBST(cross_compiling) -AM_CONDITIONAL(CROSS_COMPILING, test "x${cross_compiling}" = "xyes") -AC_SUBST(CC_FOR_BUILD) -AC_SUBST(CCLD_FOR_BUILD) - -# Endianness -# defines WORDS_BIGENDIAN for big-endian systems -AC_C_BIGENDIAN - -AC_ARG_ENABLE(variant, [ --enable-variant=something set variant], NAVIT_VARIANT=$enableval) -AC_SUBST(NAVIT_VARIANT) - -AC_ARG_ENABLE(cache-size, [ --enable-cache-size=size in bytes set cache size], AC_DEFINE_UNQUOTED(CACHE_SIZE,[${enableval}], [Size of Cache in Bytes]),AC_DEFINE(CACHE_SIZE,[1048576], [Size of Cache in Bytes])) - -AC_ARG_ENABLE(avoid-unaligned, [ --enable-avoid-unaligned avoid unaligned accesses], AVOID_UNALIGNED=$enableval, AVOID_UNALIGNED=no) -test x"${AVOID_UNALIGNED}" = xyes && AC_DEFINE(AVOID_UNALIGNED,[],Define to avoid unaligned access) - -AC_ARG_ENABLE(avoid-float, [ --enable-avoid-float avoid floating point calculations], AVOID_FLOAT=$enableval, AVOID_FLOAT=no) -test x"${AVOID_FLOAT}" = xyes && AC_DEFINE(AVOID_FLOAT,[],Define to avoid floating point) - -AC_ARG_ENABLE(transformation-roll, [ --enable-transformation-roll add support for specifying roll angle in transformation], ENABLE_ROLL=$enableval, ENABLE_ROLL=no) -test x"${ENABLE_ROLL}" = xyes && AC_DEFINE(ENABLE_ROLL,[],Define to add support for specifying roll angle in transformation) - -AC_ARG_ENABLE(hildon, [ --disable-hildon build without maemo/hildon support], enable_hildon=$enableval, enable_hildon=yes) -if test "x${enable_hildon}" = "xyes" ; then - PKG_CHECK_MODULES(HILDON, hildon-1 >= 0.9.9, , [ - AC_MSG_RESULT(no) - enable_hildon=no - ]) - PKG_CHECK_MODULES(GPSBT, gpsbt, [ - AC_DEFINE(HAVE_GPSBT, 1, [Have the gpsbt library]) - AC_SUBST(GPSBT_CFLAGS) - AC_SUBST(GPSBT_LIBS) - ], [ - AC_MSG_RESULT(no) - ]) - if test x"${enable_hildon}" = xyes ; then - AC_DEFINE(USE_HILDON, 1, [Build with maemo/hildon support]) - AC_SUBST(HILDON_CFLAGS) - AC_SUBST(HILDON_LIBS) - fi -fi -AM_CONDITIONAL(USE_HILDON, test "${enable_hildon}" = "xyes") - -AC_ARG_ENABLE(osso, [ --disable-osso build without maemo/osso support], enable_osso=$enableval, enable_osso=yes) -if test "x${enable_osso}" = "xyes" ; then - PKG_CHECK_MODULES(LIBOSSO, libosso, , [ - AC_MSG_RESULT(no) - enable_osso=no - ]) - if test x"${enable_osso}" = xyes ; then - AC_DEFINE(USE_OSSO, 1, [Build with maemo/osso support]) - AC_SUBST(LIBOSSO_CFLAGS) - AC_SUBST(LIBOSSO_LIBS) - fi -fi -echo ${enable_osso} -AM_CONDITIONAL(USE_OSSO, test "x${enable_osso}" = "xyes") - -AC_ARG_ENABLE(garmin, [ --disable-garmin disable garmin support], USE_GARMIN=$enableval, USE_GARMIN=yes) - -# samplemap -AC_PATH_PROG(_PATH_BZCAT,[bzcat]) -if test "x${_PATH_BZCAT}" = "x" ; then - samplemap=no; samplemap_reason="bzcat missing" -fi -AC_ARG_ENABLE(maptool, [ --disable-maptool don't build maptool], maptool=$enableval;maptool_reason="configure parameter") -AM_CONDITIONAL(MAPTOOL, [test "x$maptool" = "xyes"]) -if test "x$maptool" != "xyes"; then - samplemap=no; samplemap_reason="maptool disabled" -fi -AC_ARG_ENABLE(samplemap, [ --disable-samplemap don't build the samplemap], samplemap=$enableval;samplemap_reason="configure parameter") -AM_CONDITIONAL(BUILD_SAMPLEMAP, [test "x$samplemap" = "xyes"]) - -AC_ARG_ENABLE(fastmath, [ --disable-fastmath don't build with fastmath], fastmath=$enableval, fastmath=yes) -AM_CONDITIONAL(FASTMATH, [test "x$fastmath" = "xyes"]) - -if test x"$fastmath" = xyes; then - if eval "test x$GCC = xyes"; then - CFLAGS="$CFLAGS -ffast-math" - fi -fi - -X_CFLAGS="-I$x_includes" -AS_IF([test -n "$ac_x_libraries"], [X_LIBS="-L$ac_x_libraries"]) - -# glib -AC_ARG_ENABLE(glib, [ --disable-glib don't build with external glib], glib=$enableval, glib=yes) -if test "x${glib}" = "xyes" -a "x${GLIB_CFLAGS}" = "x" -a "x${GLIB_LIBS}" = "x"; then - PKG_CHECK_MODULES(GLIB, [glib-2.0 gthread-2.0], [glib=yes],[glib=no]) -fi -if test "x${glib}" = "xyes"; then - AC_DEFINE(HAVE_GLIB, 1, [Define to 1 if you have (external) glib library]) -else - GLIB_CFLAGS="-I\$(top_srcdir)/navit/support -I\$(top_srcdir)/navit/support/glib -I\$(top_srcdir)/navit/support/ezxml" - GLIB_LIBS="-L\$(top_builddir)/navit/support/glib -lsupport_glib -L\$(top_builddir)/navit/support/ezxml -lsupport_ezxml" - if test "x${win32}" != "xyes" -a "x${android}" != "xyes"; then - GLIB_LIBS="$GLIB_LIBS -lpthread" - fi -fi - -# gmodule -AC_ARG_ENABLE(gmodule, [ --disable-gmodule don't build with gmodule], gmodule=$enableval, gmodule=yes) -if test x"${gmodule}" = "xyes"; then - PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule=yes], [gmodule=no]) -fi -if test "x${gmodule}" = "xyes"; then - AC_DEFINE(HAVE_GMODULE, 1, [Define to 1 if you have gmodule]) -else - AC_CHECK_LIB(dl, dlopen, - [plugins_reason="default, via dlopen";GMODULE_LIBS="-ldl";AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have dlopen])], - [plugins="no"; plugins_reason="package gmodule and dlopen missing"] - ) -fi - -# libcrypto -AC_CHECK_LIB(crypto, AES_encrypt, [CRYPTO_LIBS="-lcrypto";AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have libcrypto])]) -AC_SUBST(CRYPTO_LIBS) - -# plugins -AC_ARG_ENABLE(plugins, [ --disable-plugins disable plugins], [ plugins=$enableval;plugin_reason="configure parameter" ]) -AC_ARG_ENABLE(shared-libnavit, [ --enable-shared-libnavit], [ shared_libnavit=$enableval]) -if test "x${plugins}" = "xyes"; then - AC_ENABLE_SHARED - AC_DISABLE_STATIC - AC_DEFINE( - [USE_PLUGINS], - [], - Define to 1 if you have plugins. - ) - if test "x${win32}" = "xyes"; then - shared_libnavit=yes - NAVIT_MODULE_LDFLAGS="-no-undefined -L\$(top_builddir)/navit -l$LIBNAVIT -L\$(top_builddir)/intl -lintl" - fi -else - if test "x${shared_libnavit}" = "xyes"; then - AC_ENABLE_SHARED - AC_DISABLE_STATIC - else - AC_DISABLE_SHARED - AC_ENABLE_STATIC - fi -fi -AM_CONDITIONAL(PLUGINS, [test "x$plugins" = "xyes"]) -AM_CONDITIONAL(SHARED_LIBNAVIT, [test "x$shared_libnavit" = "xyes"]) -AM_CONDITIONAL(BIN_NAVIT, [test "x$bin_navit" = "xyes"]) -AC_PROG_LIBTOOL -AC_SUBST(LIBNAVIT) - -AM_CONDITIONAL(EVENT_GLIB, [test "x$glib" = "xyes"]) -AM_CONDITIONAL(SUPPORT_GLIB, [test "x$glib" = "xno"]) -AM_CONDITIONAL(SUPPORT_EZXML, [test "x$glib" = "xno"]) - -AC_CHECK_HEADER([sys/time.h], - [AC_DEFINE( - [HAVE_SYS_TIME_H], - [1], - [Define to 1 if you have the header file.]) - ]) - -if test "x${ZLIB_CFLAGS}" = "x" -a "x${ZLIB_LIBS}" = "x"; then -AC_CHECK_HEADER( - zlib.h, - AC_DEFINE( - [HAVE_ZLIB], - [], - Define to 1 if you have the header file. - ) - ZLIB_LIBS="-lz" - zlib=yes, - ZLIB_CFLAGS="-I\$(top_srcdir)/navit/support/zlib" - ZLIB_LIBS="-L\$(top_builddir)/navit/support/zlib -lsupport_zlib" - zlib=no -) -else - zlib=yes -fi -AM_CONDITIONAL(SUPPORT_ZLIB, [test "x$zlib" = "xno"]) -AC_SUBST(ZLIB_CFLAGS) -AC_SUBST(ZLIB_LIBS) - -AC_CHECK_HEADER(sys/socket.h, AC_DEFINE([HAVE_SOCKET],[],Define to 1 if you have sockets)) -AC_CHECK_HEADER(winsock2.h, AC_DEFINE([HAVE_WINSOCK],[],Define to 1 if you have Windows sockets)) - -# gtk -PKG_CHECK_MODULES(GTK2, [gtk+-2.0], [gtk2_pkgconfig=yes], [gtk2_pkgconfig=no]) -if test "x$gtk2_pkgconfig" = "xyes"; then - AC_DEFINE(HAVE_GTK2, 1, [Define to 1 if you have gtk2]) - graphics_gtk_drawing_area=yes; graphics_gtk_drawing_area_reason="gtk+-2.0 present" - gui_gtk=yes; gui_gtk_reason="gtk+-2.0 present" -fi - -# fsync -AC_MSG_CHECKING(for fsync) -AC_TRY_LINK([#include ], [fsync(0);],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_FSYNC, 1, [Define to 1 if you have the `fsync' function.]),AC_MSG_RESULT(no)) - -# system -AC_MSG_CHECKING(for system) -AC_TRY_LINK([#include ], [system("/bin/true");],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_SYSTEM, 1, [Define to 1 if you have the `system' function.]),speech_cmdline=no; speech_cmdline_reason="not supported without system()"; AC_MSG_RESULT(no)) - -AC_MSG_CHECKING(for CreateProcess) -AC_TRY_LINK([#include ], [CreateProcess(NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL);],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CREATEPROCESS, 1, [Define to 1 if you have the `CreateProcess' function.]) speech_cmdline=yes; speech_cmdline_reason="CreateProcess exists", AC_MSG_RESULT(no)) - -# sbrk -AC_MSG_CHECKING(for sbrk) -AC_TRY_LINK([#include ], [sbrk(0);],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_SBRK, 1, [Define to 1 if you have the `sbrk' function.]),AC_MSG_RESULT(no)) - - -AC_ARG_ENABLE(graphics-sdl, [ --disable-graphics-sdl don't create graphics sdl], graphics_sdl=$enableval;graphics_sdl_reason="configure parameter") - -if test "x${graphics_sdl}" = "xyes" ; then - PKG_CHECK_MODULES(SDL, - [sdl], - [graphics_sdl="yes" - graphics_sdl_reason="sdl present"] , - [graphics_sdl="no" - graphics_sdl_reason="sdl not available"] - ) - AC_SUBST(SDL_CFLAGS) - AC_SUBST(SDL_LIBS) -fi -if test "x${graphics_sdl}" = "xyes" ; then - save_CPPFLAGS=$CPPFLAGS - CPPFLAGS="$SDL_CFLAGS $CPPFLAGS" - AC_CHECK_HEADER(SDL_image.h,SDL_IMAGE_LIBS=-lSDL_image,graphics_sdl="no";graphics_sdl_reason="SDL_image.h missing") - AC_SUBST(SDL_IMAGE_LIBS) - CPPFLAGS=$save_CPPFLAGS -fi -if test "x${graphics_sdl}" = "xyes" ; then - AC_DEFINE(GRAPHICS_SDL, 1, [Build with graphics sdl]) -fi -AM_CONDITIONAL(GRAPHICS_SDL, test "x${graphics_sdl}" = "xyes") - -AC_ARG_ENABLE(postgresql, [ --disable-postgresql don't add postgresql support to maptool], postgresql=$enableval;postgresql_reason="configure parameter") -if test "x${postgresql}" = "xyes" ; then - if test -z "$PG_CONFIG"; then - AC_PATH_PROG([PG_CONFIG], [pg_config], []) - fi - AC_MSG_CHECKING([for PostgreSQL libraries with $PG_CONFIG]) - if test ! -x "$PG_CONFIG"; then - if test "x${PG_CONFIG}" = "x" ; then - postgresql_reason="$PG_CONFIG not executable" - else - postgresql_reason="pg_config missing" - fi - postgresql=no - AC_MSG_RESULT([no]) - else - POSTGRESQL_CFLAGS="-I`$PG_CONFIG --includedir`" - POSTGRESQL_LIBS="-L`$PG_CONFIG --libdir` -lpq" - AC_DEFINE(HAVE_POSTGRESQL, 1, [Postgresql libraries available]) - AC_SUBST(POSTGRESQL_CFLAGS) - AC_SUBST(POSTGRESQL_LIBS) - AC_MSG_RESULT([yes]) - fi -fi -AM_CONDITIONAL(HAVE_POSTGRESQL, test "x${postgresql}" = "xyes") -# font -# freetype -AC_ARG_ENABLE(font-freetype, [ --disable-font-freetype don't add freetype support], font_freetype=$enableval;font_freetype_reason="configure parameter") -if test "x${font_freetype}" = "xyes" -a "x${FREETYPE2_CFLAGS}" = "x" -a "x${FREETYPE2_LIBS}" = "x"; then - PKG_CHECK_MODULES(FREETYPE2, [freetype2], , [font_freetype=no;font_freetype_reason="Package freetype2 missing"]) -else - fribidi=no -fi -AC_SUBST(FREETYPE2_CFLAGS) -AC_SUBST(FREETYPE2_LIBS) -AM_CONDITIONAL(FONT_FREETYPE, test "x${font_freetype}" = "xyes") -AC_ARG_WITH(freetype-fonts, [ --with-freetype-fonts specify what fonts to use], AC_DEFINE_UNQUOTED(FREETYPE_FONTS,[${withval}],[Freetype fonts to use])) - -AC_ARG_ENABLE(fontconfig, [ --disable-fontconfig don't' add fontconfig support], fontconfig=$enableval;fontconfig_reason="configure parameter") -if test "x${fontconfig}" = "xyes"; then - PKG_CHECK_MODULES(FONTCONFIG, [fontconfig], [fontconfig=yes], [fontconfig=no]) -fi -if test "x$fontconfig" = "xyes"; then - AC_DEFINE(HAVE_FONTCONFIG, 1, [Define to 1 if you have fontconfig]) -fi -AC_SUBST(FONTCONFIG_CFLAGS) -AC_SUBST(FONTCONFIG_LIBS) - -AM_CONDITIONAL(FONTS, test "x${font_freetype}" = "xyes" -a "x$fontconfig" != "xyes") - -# fribidi -AC_ARG_ENABLE(fribidi, [ --disable-fribidi dont build with fribidi], fribidi=$enableval;fribidi_reason="configure parameter", fribidi=yes) -if test x"${fribidi}" = "xyes"; then - PKG_CHECK_MODULES(FRIBIDI2, [fribidi >= 0.19.0], [fribidi=yes;oldfribidi=no], - [ PKG_CHECK_MODULES([FRIBIDI], [fribidi], - [fribidi=yes;oldfribidi=yes;fribid_reason="using old version"], [fribidi=no;fribidi_reason="FriBidi library not found"]) - ]) -fi -if test x"${fribidi}" = "xyes"; then - AC_DEFINE(USE_FRIBIDI, 1, [Build with fribidi support]) -fi -if test x"${oldfribidi}" = "xyes"; then - AC_DEFINE(FRIBIDIOLD, 1, [Build with fribidi support for older versions of fribidi]) -fi - -AC_SUBST(FRIBIDI2_CFLAGS) -AC_SUBST(FRIBIDI2_LIBS) -AC_SUBST(FRIBIDI_CFLAGS) -AC_SUBST(FRIBIDI_LIBS) - -PKG_CHECK_MODULES(IMLIB2, [imlib2], [imlib2_pkgconfig=yes], [imlib2_pkgconfig=no]) -if test "x$imlib2_pkgconfig" = "xyes"; then - AC_DEFINE(HAVE_IMLIB2, 1, [Define to 1 if you have imlib2]) -fi -AC_SUBST(IMLIB2_CFLAGS) -AC_SUBST(IMLIB2_LIBS) - -AC_ARG_ENABLE(graphics-opengl, [ --disable-graphics-opengl disable graphics type OpenGL], graphics_opengl=$enableval;graphics_opengl_reason="configure parameter") -if test "x${graphics_opengl}" = "xyes" ; then - -AC_CHECK_HEADER( - GL/gl.h, - AC_DEFINE( - [HAVE_OPENGL], - [], - Define to 1 if you have the header file. - ) - OPENGL_LIBS="$X_LIBS -lGL -lglut -lfreeimage" - opengl=yes, - AC_MSG_WARN([*** no GL/gl.h -- opengl graphics support disabled];graphics_opengl=no;graphics_opengl_reason="GL/gl.h header missing") -) - -AC_CHECK_HEADER( - GL/glut.h, - AC_DEFINE( - [HAVE_GLUT], - [], - Define to 1 if you have the header file. - ) - glut=yes, - AC_MSG_WARN([*** no GL/glut.h -- opengl graphics support disabled]);graphics_opengl=no;graphics_opengl_reason="GL/glut.h header missing" -) - -AC_CHECK_HEADER( - GL/freeglut.h, - AC_DEFINE( - [HAVE_FREEGLUT], - [], - Define to 1 if you have the header file. - ) - freeglut=yes, - AC_MSG_WARN([*** no GL/freeglut.h -- opengl support disabled]);graphics_opengl=no;graphics_opengl_reason="Headers missing" -) - -AC_SUBST(OPENGL_CFLAGS) -AC_SUBST(OPENGL_LIBS) - -AC_CHECK_HEADER( - GL/glc.h, - AC_DEFINE( - [HAVE_GLC], - [], - Define to 1 if you have the header file. - ) - GLC_LIBS="-lGLC" - glc=yes, - AC_MSG_WARN([*** no GL/glc.h -- opengl graphics support disabled]);graphics_opengl=no;graphics_opengl_reason="GL/glc.h header missing" -) -AC_CHECK_HEADER( - FreeImage.h, - AC_DEFINE( - [HAVE_FREEIMAGE], - [1], - Define to 1 if you have the header file. - ) - FREEIMAGE_LIBS="-lfreeimage" - freeimage=yes, - AC_MSG_WARN([*** no FreeImage.h -- opengl support disabled]);graphics_opengl=no;graphics_opengl_reason="Headers missing" -) -AC_SUBST(FREEIMAGE_LIBS) -AC_SUBST(GLC_CFLAGS) -AC_SUBST(GLC_LIBS) -fi - -AM_CONDITIONAL(GRAPHICS_OPENGL, [test "x$glut" = "xyes" -a "x$freeglut" = "xyes" -a "x$opengl" = "xyes" -a "x$freeimage" = "xyes" -a "x$glc" = "xyes" ]) - - -system_shapefile=no -if test x"${map_shapefile}" = xyes -then -AC_CHECK_HEADERS( - [shapefil.h libshp/shapefil.h], - [AC_DEFINE( - [HAVE_SYS_SHAPEFILELIB], - [1], - Define to 1 if you have the header file. - )], - [SHAPEFILE_CFLAGS="-I\$(top_srcdir)/navit/support/shapefile"] - ) - -AC_CHECK_LIB( - [shp], - [DBFDeleteField], - [SHAPEFILE_LIBS="-lshp" - system_shapefile=yes], - [SHAPEFILE_LIBS="-L\$(top_builddir)/navit/support/shapefile -lsupport_shapefile" - system_shapefile=no] - ) - -if test x"${system_shapefile}" = xno -then - AC_MSG_WARN([*** The shapefile library(libshp) from the system is to old or not found! -- using included copy]) -fi - -fi -AC_SUBST(SHAPEFILE_CFLAGS) -AC_SUBST(SHAPEFILE_LIBS) -AM_CONDITIONAL(HAVE_SYSTEM_SHAPEFILELIB, [test "x$system_shapefile" = "xyes" ]) - -if test x"${USE_GARMIN}" = xyes -then - # check for libgarmin - PKG_CHECK_MODULES(LIBGARMIN, libgarmin, use_libgarmin=yes, use_libgarmin=no) - AC_SUBST(LIBGARMIN_CFLAGS) - AC_SUBST(LIBGARMIN_LIBS) -fi - AM_CONDITIONAL(HAVELIBGARMIN, [test "x$use_libgarmin" = "xyes"]) - -## binding -# python -AC_ARG_ENABLE(binding-python, [ --disable-binding-python don't create binding python], binding_python=$enableval;binding_python_reason="configure parameter") -if test "x${binding_python}" = "xyes"; then - AC_PATH_PROG(_PATH_PYTHON,[python]) - dnl Libraries and flags for embedded Python. - dnl FIXME: I wish there was a less icky way to get this. - if test "x${_PATH_PYTHON}" != "x" ; then - AC_MSG_CHECKING(for Python linkage) - AC_PATH_PROG([PYTHONCONFIG], [python-config], []) - if test "x${PYTHONCONFIG}" = "x" ; then - py_prefix=`$_PATH_PYTHON -c 'import sys; print sys.prefix'` - py_ver=`$_PATH_PYTHON -c 'import sys; print sys.version[[:3]]'` - py_lib=`$_PATH_PYTHON -c 'import sys; print sys.lib'` - py_libdir="${py_prefix}/${py_lib}/python${py_ver}" - PYTHON_CFLAGS="-I${py_prefix}/include/python${py_ver}" - if test -f $py_libdir/config/Makefile -a -f $py_prefix/include/python${py_ver}/Python.h; then - py_libs=`grep '^LIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libc=`grep '^LIBC=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libm=`grep '^LIBM=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_liblocalmod=`grep '^LOCALMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libbasemod=`grep '^BASEMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - PYTHON_LIBS="-L$py_libdir/config $py_libs $py_libc $py_libm -lpython$py_ver $py_liblocalmod $py_libbasemod" - PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/[ \\t]*/ /g'` - AC_MSG_RESULT($py_libdir) - else - binding_python="no" - binding_python_reason="$py_libdir/config/Makefile or $py_prefix/include/python${py_ver}/Python.h missing" - fi - - else - PYTHON_CFLAGS="`${PYTHONCONFIG} --cflags`" - PYTHON_LIBS="`${PYTHONCONFIG} --ldflags`" - fi - else - binding_python="no" - binding_python_reason="python executable missing" - fi -fi -if test "x${binding_python}" = xyes ; then - AC_DEFINE(USE_BINDING_PYTHON, 1, [Build with binding python]) -fi -AC_SUBST(PYTHON_CFLAGS) -AC_SUBST(PYTHON_LIBS) -AM_CONDITIONAL(BINDING_PYTHON, test "x${binding_python}" = "xyes") - -# dbus -AC_ARG_ENABLE(binding-dbus, [ --disable-binding-dbus don't create binding dbus], binding_dbus=$enableval;binding_dbus_reason="configure parameter") -AC_ARG_ENABLE(binding-dbus-use-system-bus, [ --enable-binding-dbus-use-system-bus use system bus for dbus binding], binding_dbus_use_system_bus=$enableval) -if test "x${binding_dbus}" = "xyes" ; then - PKG_CHECK_MODULES(DBUS, [dbus-glib-1], ,binding_dbus=no) -fi -if test "x${binding_dbus}" = "xyes" ; then - AC_DEFINE(USE_BINDING_DBUS, 1, [Build with binding dbus]) - vehicle_gpsd_dbus="yes" - vehicle_gpsd_dbus_reason="dbus binding present" - speech_dbus="yes" - speech_dbus_reason="dbus binding present" -fi -if test "x${binding_dbus_use_system_bus}" = "xyes" ; then - AC_DEFINE(DBUS_USE_SYSTEM_BUS, 1, [Use system bus instead of session bus for binding dbus]) -fi -AC_SUBST(DBUS_CFLAGS) -AC_SUBST(DBUS_LIBS) -AM_CONDITIONAL(BINDING_DBUS, test "x${binding_dbus}" = "xyes") -AM_CONDITIONAL(VEHICLE_GPSD_DBUS, test "x${vehicle_gpsd_dbus}" = "xyes") -AM_CONDITIONAL(SPEECH_DBUS, test "x${speech_dbus}" = "xyes") -AC_ARG_WITH(dbus-service-dir, [ --with-dbus-service-dir specify where the dbus service dir resides], DBUS_SERVICE_DIR=$withval, DBUS_SERVICE_DIR="$datarootdir/dbus-1/services") -AC_SUBST(DBUS_SERVICE_DIR) - -# win32 binding -AC_ARG_ENABLE(binding-win32, [ --disable-binding-win32 don't create binding win32], binding_win32=$enableval;binding_win32_reason="configure parameter") -if test "x${binding_win32}" = "xyes" ; then - AC_DEFINE(USE_BINDING_WIN32, 1, [Build with binding win32]) -fi -AM_CONDITIONAL(BINDING_WIN32, test "x${binding_win32}" = "xyes") - -# svg -AC_ARG_ENABLE(svg, [ --disable-svg disable Scalable Vector Graphics], enable_svg=$enableval, enable_svg=yes) -AC_ARG_ENABLE(svg2png, [ --disable-svg2png disable conversion of svgs to pngs], enable_svg2png=$enableval, enable_svg2png=yes) -AC_ARG_ENABLE(svg2png-scaling, [ --enable-svg2png-scaling enable conversion of svgs to pngs with specified sizes], SVG2PNG_SCALES=$enableval, SVG2PNG_SCALES="8 16 32 48 96") -AC_ARG_ENABLE(svg2png-scaling-flag, [ --enable-svg2png-scaling-flag enable conversion of flag svgs to pngs with specified sizes], SVG2PNG_SCALES_FLAG=$enableval, SVG2PNG_SCALES_FLAG="8 16 32 48 96") -AC_ARG_ENABLE(svg2png-scaling-nav, [ --enable-svg2png-scaling-nav enable conversion of nav svgs to pngs with specified sizes], SVG2PNG_SCALES_NAV=$enableval, SVG2PNG_SCALES_NAV="8 16 32 48 96") -AC_ARG_WITH(svg2png-use-convert, [ --with-svg2png-use-convert use imagemagick's convert for png creation], SVG2PNG_CONVERTER="convert") -AC_ARG_WITH(svg2png-use-rsvg-convert, [ --with-svg2png-use-rsvg-convert use librsvg's rsvg-convert for png creation], SVG2PNG_CONVERTER="rsvg-convert") -AC_ARG_WITH(svg2png-use-inkscape, [ --with-svg2png-use-inkscape use inkscapes internal convert routines for png creation], SVG2PNG_CONVERTER="inkscape") -AC_ARG_WITH(svg2png-use-ksvgtopng4, [ --with-svg2png-use-ksvgtopng4 use kde4's ksvgtopng4 for png creation], SVG2PNG_CONVERTER="ksvgtopng4") -AC_ARG_WITH(svg2png-use-ksvgtopng, [ --with-svg2png-use-ksvgtopng use kde3's convert for png creation], SVG2PNG_CONVERTER="ksvgtopng") -if test "x${enable_svg2png}" = "xyes" ; then - if test "x${SVG2PNG_CONVERTER}" = "x"; then - SVG2PNG_CONVERTER="rsvg-convert ksvgtopng ksvgtopng4 inkscape convert" - fi - AC_PATH_PROGS([SVG2PNG], ${SVG2PNG_CONVERTER}, [none]) - if test "x${SVG2PNG}" = "xnone"; then - enable_svg2png="no" - fi -fi -AC_SUBST(SVG2PNG) -AC_SUBST(SVG2PNG_SCALES) -AC_SUBST(SVG2PNG_SCALES_FLAG) -AC_SUBST(SVG2PNG_SCALES_NAV) -AM_CONDITIONAL(USE_SVG2PNG_SCALES, test "x${SVG2PNG_SCALES}" != "xyes" -a "x${SVG2PNG_SCALES}" != "x") -AM_CONDITIONAL(USE_SVG2PNG_SCALES_FLAG, test "x${SVG2PNG_SCALES_FLAG}" != "xyes" -a "x${SVG2PNG_SCALES_FLAG}" != "x") -AM_CONDITIONAL(USE_SVG2PNG_SCALES_NAV, test "x${SVG2PNG_SCALES_NAV}" != "xyes" -a "x${SVG2PNG_SCALES_NAV}" != "x") -AM_CONDITIONAL(USE_SVG2PNG, test "x${enable_svg2png}" = "xyes") -AM_CONDITIONAL(USE_SVG, test "x${enable_svg}" = "xyes") - -# XSLTS -AC_ARG_WITH(xslts, [ --with-xslts enable processing of navit.xml with given xslt scripts], XSLTS=$withval, XSLTS="") -AC_SUBST(XSLTS) -AC_ARG_WITH(saxon, [ --with-saxon specify the saxon xslt processor], SAXON=$withval, SAXON="saxon") -AC_SUBST(SAXON) - -# Android Permissions -AC_ARG_WITH(android-permissions, [ --with-android-permissions Set additional android permissions], ANDROID_PERMISSIONS=$withval, ANDROID_PERMISSIONS="") -AC_SUBST(ANDROID_PERMISSIONS) -# Android Project -AC_ARG_WITH(android-project, [ --with-android-project Set android project], ANDROID_PROJECT=$withval, ANDROID_PROJECT="3") -AC_SUBST(ANDROID_PROJECT) - -# NLS - -AC_ARG_ENABLE(nls, - [ --disable-nls disable Native Language Support ( gettext/libintl )], - enable_nls=$enableval, enable_nls=yes) - - -INTLIBS="" -MOFILES="" -POFILES="" -POIFILES="" -LINGUAS="" - -xgettext_glade=no -if test "x$enable_nls" = "xyes"; then - - AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"],[INTLIBS="-lintl" HAVEGETTEXT="yes"]) - AC_CHECK_PROG(XGETTEXT, xgettext, xgettext) - AC_CHECK_PROG(MSGMERGE, msgmerge, msgmerge) - AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt) - - if test "$XGETTEXT" != ""; then - if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then - echo "xgettext isn't GNU version" - XGETTEXT="" - else - if echo '' | $XGETTEXT -L Glade - ; then - xgettext_glade=yes - fi - fi - fi - - if test "$XGETTEXT" != "" ; then - PO="" - if test "$LINGUAS" = ""; then - ling=` (cd $srcdir/po; /bin/ls *.po.in) ` - for l in $ling; do - lcode=`basename $l .po.in` - LINGUAS="$LINGUAS$lcode " - done - fi - AC_DEFINE(USE_NATIVE_LANGUAGE_SUPPORT, [1], [NLS Please]) - echo "xgettext and gettext() exist; will build i18n support for $LINGUAS" - else - LINGUAS="" - PO="" - echo "xgettext doesn't exist; will not build i18n support" - enable_nls=no - fi - for lang in $LINGUAS; do - MOFILES="$MOFILES $lang.mo" - done - for lang in $LINGUAS; do - POFILES="$POFILES $lang.po" - done - for lang in $LINGUAS; do - POIFILES="$POIFILES $lang.po.in" - done - -AC_SUBST(INTLIBS) -AC_SUBST(MOFILES) -AC_SUBST(POFILES) -AC_SUBST(POIFILES) -AM_GNU_GETTEXT_VERSION -AM_GNU_GETTEXT(no-libtool, need-ngettext, \$(top_builddir)/intl/) -if test "x${shared_libnavit}" = "xyes" -a "x${win32ce}" = "xyes"; then - INTLLIBS="\$(top_builddir)/intl/libintl.la" - LIBINTL=$INTLLIBS - LTLIBINTL=$INTLLIBS -fi -AC_SUBST(LIBINTL) -AC_SUBST(LTLIBINTL) -if test x"$LIBINTL" != "x" ;then - CFLAGS="$CFLAGS -I\$(top_builddir)/intl/" -fi - -fi -AM_CONDITIONAL(USE_NATIVE_LANGUAGE_SUPPORT, [test "x$enable_nls" = "xyes"]) -AM_CONDITIONAL(XGETTEXT_GLADE, [test "x$xgettext_glade" = "xyes"]) -AC_CHECK_HEADER( - byteswap.h, - AC_DEFINE( - [HAVE_BYTESWAP_H], - [1], - [Define to 1 if you have byteswap.h], - ) - , -) - -AC_CHECK_HEADER(sys/endian.h,AC_DEFINE([USE_SYS_ENDIAN_H], [1], [Define to 1 if you have sys/endian.h],),) - -PACKAGE=navit -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") -AC_DEFINE_UNQUOTED(VERSION, "$VERSION") -AC_SUBST(PACKAGE) -AC_SUBST(VERSION) - -AC_CHECK_HEADER(wordexp.h,wordexp_h=yes,wordexp_h=no;NAVIT_CFLAGS="$NAVIT_CFLAGS -I\$(top_srcdir)/navit/support/wordexp";WORDEXP_LIBS="-L\$(top_builddir)/navit/support/wordexp -lsupport_wordexp") -AM_CONDITIONAL(SUPPORT_WORDEXP, [test "x$wordexp_h" = "xno"]) - -support_libc=no -AC_ARG_ENABLE(support_libc, [ --enable-support-libc enable builtin mini libc ], support_libc=$enableval) -AM_CONDITIONAL(SUPPORT_LIBC, [test "x$support_libc" = "xyes"]) -if test "x$support_libc" = "xyes"; then - CFLAGS="$CFLAGS -I\$(top_srcdir)/navit/support/libc" - LIBC_LIBS="-L\$(top_builddir)/navit/support/libc -lsupport_libc" -fi - -## graphics -AC_ARG_ENABLE(graphics, [ --disable-graphics disable graphics], graphics=$enableval;graphics_reason="configure parameter") -AM_CONDITIONAL(GRAPHICS, test "x${graphics}" = "xyes") -if test "x$graphics" = "xyes"; then - AC_DEFINE([USE_GRAPHICS],[1],Define to 1 if you want to use graphics.) -fi - -# gd - -# android -AC_ARG_ENABLE(graphics-android, [ --disable-graphics-android disable graphics type android], graphics_android=$enableval;graphics_android_reason="configure parameter") -AM_CONDITIONAL(GRAPHICS_ANDROID, test "x${graphics_android}" = "xyes") -# gd -AC_ARG_ENABLE(graphics-gd, [ --enable-graphics-gd enable graphics type gd], graphics_gd=$enableval;graphics_gd_reason="configure parameter") -if test "x${graphics_gd}" = "xyes" ; then - if test -z "$GDLIB_CONFIG"; then - AC_PATH_PROG([GDLIB_CONFIG], [gdlib-config], []) - fi - AC_MSG_CHECKING([for gdlib with $GDLIB_CONFIG]) - if test ! -x "$GDLIB_CONFIG"; then - if test "x${GDLIB_CONFIG}" = "x" ; then - graphics_gd_reason="$GDLIB_CONFIG not executable" - else - graphics_gd_reason="gdlib-config missing" - fi - graphics_gd=no - AC_MSG_RESULT([no]) - else - if test "x${GD_CFLAGS}" = "x" ; then - GD_CFLAGS="-I`$GDLIB_CONFIG --includedir`" - fi - if test "x${GD_LIBS}" = "x" ; then - GD_LIBS="-L`$GDLIB_CONFIG --libdir` -lgd `$GDLIB_CONFIG --libs`" - fi - AC_SUBST(GD_CFLAGS) - AC_SUBST(GD_LIBS) - AC_MSG_RESULT([yes]) - fi -fi -AM_CONDITIONAL(GRAPHICS_GD, test "x${graphics_gd}" = "xyes") -AC_CHECK_HEADER( - sys/shm.h, - AC_DEFINE( - [HAVE_SHMEM], - [], - Define to 1 if you have shared memory - ) -) -AC_CHECK_HEADER( - X11/xpm.h, - AC_DEFINE( - [HAVE_XPM], - [], - Define to 1 if you have xpm header - ) -) -AC_CHECK_HEADER( - getopt.h, - AC_DEFINE( - [HAVE_GETOPT_H], - [], - Define to 1 if you have the getopt header - ) -) -if test "x${graphics_gd}" = "xyes" ; then - save_CPPFLAGS=$CPPFLAGS - save_LIBS=$LIBS - LIBS="$GD_LIBS $LIBS" - CPPFLAGS="$GD_CFLAGS $CPPFLAGS" - AC_TRY_LINK([#include ], [gdImageCreateFromPng(0);],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_GRAPHICS_GD_PNG, 1, [Define to 1 if you have png support in gd.]),AC_MSG_RESULT(no)) - CPPFLAGS=$save_CPPFLAGS - LIBS=$save_LIBS -fi - -# gtk_drawing_area -AC_ARG_ENABLE(graphics-gtk-drawing-area, [ --disable-graphics-gtk-drawing-area disable graphics type gtk_drawing_area], graphics_gtk_drawing_area=$enableval;graphics_gtk_drawing_area_reason="configure parameter") -AM_CONDITIONAL(GRAPHICS_GTK_DRAWING_AREA, [test "x${graphics_gtk_drawing_area}" = "xyes"]) -# null -AC_ARG_ENABLE(graphics-null, [ --disable-graphics-null disable graphics type null], graphics_null=$enableval;graphics_null_reason="configure parameter") -AM_CONDITIONAL(GRAPHICS_NULL, test "x${graphics_null}" = "xyes") -# win32 -AC_ARG_ENABLE(graphics-win32, [ --disable-graphics-win32 disable graphics type win32], graphics_win32=$enableval;graphics_win32_reason="configure parameter") -AM_CONDITIONAL(GRAPHICS_WIN32, test "x${graphics_win32}" = "xyes") -# qt_qpainter -AC_ARG_ENABLE(graphics-qt-qpainter, [ --disable-graphics-qt-qpainter disable graphics type qt-qpainter], graphics_qt_qpainter=$enableval;graphics_qt_qpainter_reason="configure parameter") -if test "x${graphics_qt_qpainter}" = "xyes" -a "x${QT_GUI_CFLAGS}" = "x" -a "x${QT_GUI_LIBS}" = "x"; then - PKG_CHECK_MODULES(QT_GUI, [QtGui QtCore],graphics_qt_qpainter=yes,graphics_qt_qpainter=no;graphics_qt_qpainter_reason="Packages QtGui and/or QtCore missing") - if test "x${graphics_qt_qpainter}" = "xno"; then - PKG_CHECK_MODULES(QT_GUI, [qt-mt],graphics_qt_qpainter=yes;graphics_qt_qpainter_reason="Package qt-mt present",graphics_qt_qpainter=no) - fi -fi -if test "x${graphics_qt_qpainter}" = "xyes" ; then - PKG_CHECK_MODULES(QT_SVG, [QtSvg], have_qt_svg=yes, have_qt_svg=no) - if test "x${have_qt_svg}" = "xyes"; then - AC_DEFINE([HAVE_QT_SVG],[],Define to 1 if qt supports svg) - fi -fi -if test "x${graphics_qt_qpainter}" = "xyes" ; then - AC_DEFINE(USE_GRAPICS_QT_QPAINTER, 1, [Build with graphics qt_qpainter]) -fi -AC_SUBST(QT_GUI_CFLAGS) -AC_SUBST(QT_GUI_LIBS) -AC_SUBST(QT_SVG_CFLAGS) -AC_SUBST(QT_SVG_LIBS) -AM_CONDITIONAL(GRAPHICS_QT_QPAINTER, test "x${graphics_qt_qpainter}" = "xyes") -MOC=`$PKG_CONFIG QtGui --variable=moc_location` -if test "x${MOC}" = "x"; then - AC_CHECK_PROG(MOC, moc, moc) -fi -AC_SUBST(MOC) - - -## map -# binfile -AC_ARG_ENABLE(map-binfile, [ --disable-map-binfile disable map binfile], map_binfile=$enableval;map_binfile_reason="configure parameter") -AM_CONDITIONAL(MAP_BINFILE, test "x${map_binfile}" = "xyes") -# filter -AC_ARG_ENABLE(map-filter, [ --disable-map-filter disable map filter], map_filter=$enableval;map_filter_reason="configure parameter") -AM_CONDITIONAL(MAP_FILTER, test "x${map_filter}" = "xyes") -# mg -AC_ARG_ENABLE(map-mg, [ --disable-map-mg disable map mg], map_mg=$enableval;map_mg_reason="configure parameter") -AM_CONDITIONAL(MAP_MG, test "x${map_mg}" = "xyes") -# shapefile -AC_ARG_ENABLE(map-shapefile, [ --disable-map-shapefile disable map shapefile], map_shapefile=$enableval;map_shapefile_reason="configure parameter") -AM_CONDITIONAL(MAP_SHAPEFILE, test "x${map_shapefile}" = "xyes") -# textfile -AC_ARG_ENABLE(map-textfile, [ --disable-map-textfile disable map textfile], map_textfile=$enableval;map_textfile_reason="configure parameter") -AM_CONDITIONAL(MAP_TEXTFILE, test "x${map_textfile}" = "xyes") -# csv -AC_ARG_ENABLE(map-csv, [ --disable-map-csv disable map csv], map_csv=$enableval;map_csv_reason="configure parameter") -AM_CONDITIONAL(MAP_CSV, test "x${map_csv}" = "xyes") - -## osd -# core -AC_ARG_ENABLE(osd-core, [ --disable-osd-core disable osd core], osd_core=$enableval;osd_core_reason="configure parameter") -AM_CONDITIONAL(OSD_CORE, test "x${osd_core}" = "xyes") - -## gui -# gtk -AC_ARG_ENABLE(gui-gtk, [ --disable-gui-gtk disable gui type gtk ], gui_gtk=$enableval) -AM_CONDITIONAL(GUI_GTK, [test "x${gui_gtk}" = "xyes"]) -# internal -AC_ARG_ENABLE(gui-internal, [ --disable-gui-internal disable gui type internal], gui_internal=$enableval;gui_internal_reason="configure parameter") -AM_CONDITIONAL(GUI_INTERNAL, test "x${gui_internal}" = "xyes") -# win32 -AC_ARG_ENABLE(gui-win32, [ --disable-gui-win32 disable gui type win32], gui_win32=$enableval;gui_win32_reason="configure parameter") -AM_CONDITIONAL(GUI_WIN32, test "x${gui_win32}" = "xyes") -# qml -AC_ARG_ENABLE(gui-qml, [ --disable-gui-qml disable gui type QML], gui_qml=$enableval;gui_qml_reason="configure parameter") -if test "x${gui_qml}" = "xyes" -a "x${QT_GUI_CFLAGS}" = "x" -a "x${QT_GUI_LIBS}" = "x"; then - PKG_CHECK_MODULES(QT_GUI, [QtGui QtCore], ,gui_qml=no;gui_qml_reason="Packages QtGui and/or QtCore are missing") -fi -if test "x${gui_qml}" = "xyes" -a "x${QT_XML_CFLAGS}" = "x" -a "x${QT_XML_LIBS}" = "x"; then - PKG_CHECK_MODULES(QT_XML, [QtXml], ,gui_qml=no;gui_qml_reason="Package QtXml is missing") -fi -if test "x${gui_qml}" = "xyes" -a "x${QT_DECLARATIVE_CFLAGS}" = "x" -a "x${QT_DECLARATIVE_LIBS}" = "x"; then - PKG_CHECK_MODULES(QT_DECLARATIVE, [QtDeclarative >= 4.6.0 ], ,gui_qml=no;gui_qml_reason="Packages QtDeclarative is missing") -fi -if test "x${gui_qml}" = "xyes" ; then - AC_DEFINE(USE_GUI_QML, 1, [Build with gui qml]) -fi -AC_SUBST(QT_GUI_CFLAGS) -AC_SUBST(QT_GUI_LIBS) -AC_SUBST(QT_DECLARATIVE_CFLAGS) -AC_SUBST(QT_DECLARATIVE_LIBS) -AC_SUBST(QT_XML_CFLAGS) -AC_SUBST(QT_XML_LIBS) -AM_CONDITIONAL(GUI_QML, test "x${gui_qml}" = "xyes") - -## plugins -# pedestrian -AC_ARG_ENABLE(plugin-pedestrian, [ --enable-plugin-pedestrian enable pedestrian plugin], plugin_pedestrian=$enableval;plugin_pedestrian_reason="configure parameter") -AM_CONDITIONAL(PLUGIN_PEDESTRIAN, test "x${plugin_pedestrian}" = "xyes") - -## routing -AC_ARG_ENABLE(routing, [ --disable-routing disable routing], routing=$enableval;routing_reason="configure parameter") -AM_CONDITIONAL(ROUTING, test "x${routing}" = "xyes") -if test "x$routing" = "xyes"; then - AC_DEFINE([USE_ROUTING],[1],Define to 1 if you want to have routing.) -fi - -## speech -# android -AC_ARG_ENABLE(speech-android, [ --disable-speech-android disable speech type android], speech_android=$enableval;speech_android_reason="configure parameter") -AM_CONDITIONAL(SPEECH_ANDROID, test "x${speech_android}" = "xyes") -# cmdline -AC_ARG_ENABLE(speech-cmdline, [ --disable-speech-cmdline disable speech type cmdline], speech_cmdline=$enableval;speech_cmdline_reason="configure parameter") -AM_CONDITIONAL(SPEECH_CMDLINE, test "x${speech_cmdline}" = "xyes") -# espeak -AC_ARG_ENABLE(speech-espeak, [ --disable-speech-espeak disable speech type espeak], speech_espeak=$enableval;speech_espeak_reason="configure parameter") -AM_CONDITIONAL(SPEECH_ESPEAK, test "x${speech_espeak}" = "xyes") -# speech-dispatcher -AC_ARG_ENABLE(speech-speech-dispatcher, [ --disable-speech-speech-dispatcher disable speech type speech-dispatcher], speech_speech_dispatcher=$enableval;speech_speech_dispatcher_reason="configure parameter") -if test "x$speech_speech_dispatcher" = "xyes"; then - AC_CHECK_HEADER(libspeechd.h, AC_DEFINE([HAVE_LIBSPEECHD],[],Define to 1 if you have the header file.) SPEECHD_LIBS="-lspeechd", speech_speech_dispatcher=no; speech_speech_dispatcher_reason="libspeechd.h missing") -fi -AC_SUBST(SPEECHD_CFLAGS) -AC_SUBST(SPEECHD_LIBS) -AM_CONDITIONAL(SPEECH_SPEECH_DISPATCHER, test "x${speech_speech_dispatcher}" = "xyes") -AM_CONDITIONAL(SUPPORT_ESPEAK, test "x${support_espeak}" = "xyes") - -## vehicle -# android -AC_ARG_ENABLE(vehicle-android, [ --disable-vehicle-android disable vehicle type android], vehicle_android=$enableval;vehicle_android_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_ANDROID, test "x${vehicle_android}" = "xyes") -# demo -AC_ARG_ENABLE(vehicle-demo, [ --disable-vehicle-demo disable vehicle type demo], vehicle_demo=$enableval;vehicle_demo_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_DEMO, test "x${vehicle_demo}" = "xyes") -# file -AC_ARG_ENABLE(vehicle-file, [ --disable-vehicle-file disable vehicle type file], vehicle_file=$enableval;vehicle_file_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_FILE, test "x${vehicle_file}" = "xyes") -# gpsd -# We accept even old, buggy versions of libgps, because N810 uses an old version (see #1179). -AC_ARG_ENABLE(vehicle-gpsd, [ --disable-vehicle-gpsd disable vehicle type gpsd], vehicle_gpsd=$enableval;vehicle_gpsd_reason="configure parameter") -if test "x${vehicle_gpsd}" = xyes -then - PKG_CHECK_MODULES([GPSD], [libgps], have_libgps="yes", have_libgps="no") - if test "x$have_libgps" = "xyes"; then - AC_DEFINE([HAVE_LIBGPS],[],Define to 1 if you have libgps.) - PKG_CHECK_MODULES([LIBGPS19], [libgps >= 2.90], have_libgps19="yes", have_libgps19="no") - if test "x$have_libgps19" = "xyes"; then - AC_DEFINE([HAVE_LIBGPS19],[],Define to 1 if you have libgps19.) - fi - else - AC_CHECK_HEADER(gps.h, AC_DEFINE([HAVE_LIBGPS],[],Define to 1 if you have the header file.) GPSD_LIBS="-lgps", vehicle_gpsd=no; vehicle_gpsd_reason="no gps.h and no gpsd pkgconfig" ) - fi -fi -AC_SUBST(GPSD_CFLAGS) -AC_SUBST(GPSD_LIBS) -AM_CONDITIONAL(VEHICLE_GPSD, [test "x${vehicle_gpsd}" = "xyes"]) -# gypsy -AC_ARG_ENABLE(vehicle-gypsy,[ --disable-vehicle-gypsy disable vehicle type gypsy], vehicle_gypsy=$enableval;vehicle_gypsy_reason="configure parameter") -if test "x${vehicle_gypsy}" = "xyes" -then - PKG_CHECK_MODULES(GYPSY, gypsy, ,vehicle_gypsy=no;vehicle_gypsy_reason="package gypsy missing") -fi -AC_SUBST(GYPSY_CFLAGS) -AC_SUBST(GYPSY_LIBS) -AM_CONDITIONAL(VEHICLE_GYPSY, test "x${vehicle_gypsy}" = "xyes") -# maemo -AC_ARG_ENABLE(vehicle-maemo, [ --disable-vehicle-maemo disable vehicle type maemo], vehicle_maemo=$enableval;vehicle_maemo_reason="configure parameter") -if test "x${vehicle_maemo}" = "xyes" ; then - PKG_CHECK_MODULES(LIBLOCATION, liblocation, [ - AC_SUBST(LIBLOCATION_CFLAGS) - AC_SUBST(LIBLOCATION_LIBS) - ], [ - AC_MSG_RESULT(no) - vehicle_maemo=no - vehicle_maemo_reason="no maemo location library found" - ]) -fi -AM_CONDITIONAL(VEHICLE_MAEMO, test "x${vehicle_maemo}" = "xyes") -# null -AC_ARG_ENABLE(vehicle-null, [ --enable-vehicle-null enable vehicle type null], vehicle_null=$enableval;vehicle_null_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_NULL, test "x${vehicle_null}" = "xyes") -# wince -AC_ARG_ENABLE(vehicle-wince, [ --disable-vehicle-wince disable vehicle type wince], vehicle_wince=$enableval;vehicle_wince_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_WINCE, test "x${vehicle_wince}" = "xyes") -# iphone -AC_ARG_ENABLE(vehicle-iphone, [ --disable-vehicle-iphone disable vehicle type iphone], vehicle_iphone=$enableval;vehicle_iphone_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_IPHONE, test "x${vehicle_iphone}" = "xyes") -if test "x${vehicle_iphone}" = "xyes" -then - IPHONE_LIBS=-Wl,-framework,CoreLocation -fi -AC_SUBST(IPHONE_CFLAGS) -AC_SUBST(IPHONE_LIBS) -# webos -AC_ARG_ENABLE(vehicle-webos, [ --enable-vehicle-webos enable vehicle type webos], vehicle_webos=$enableval;vehicle_webos_reason="configure parameter") -AM_CONDITIONAL(VEHICLE_WEBOS, test "x${vehicle_webos}" = "xyes") -if test "x${vehicle_webos}" = "xyes" -then - AC_DEFINE(USE_WEBOS,[],Build with webOS support) - LIBPDL_CFLAGS="$SDL_CFLAGS -I/usr/local/include" - LIBPDL_LIBS="-L/usr/local/lib -lpdl" - AC_SUBST(LIBPDL_CFLAGS) - AC_SUBST(LIBPDL_LIBS) -fi -NAVIT_CFLAGS="$NAVIT_CFLAGS $GLIB_CFLAGS $GMODULE_CFLAGS" -NAVIT_LIBS="$NAVIT_LIBS $GLIB_LIBS $GMODULE_LIBS $LIBINTL" -AC_SUBST(NAVIT_CFLAGS) -AC_SUBST(NAVIT_LIBS) -AC_SUBST(WORDEXP_LIBS) -AC_SUBST(LIBC_LIBS) -AC_SUBST(WINDRES) - -AC_CONFIG_FILES([ -Makefile -navit/Makefile -navit/autoload/Makefile -navit/autoload/osso/Makefile -navit/binding/Makefile -navit/binding/python/Makefile -navit/binding/dbus/Makefile -navit/binding/win32/Makefile -navit/map/Makefile -navit/map/mg/Makefile -navit/map/textfile/Makefile -navit/map/csv/Makefile -navit/map/shapefile/Makefile -navit/map/filter/Makefile -navit/map/binfile/Makefile -navit/map/garmin/Makefile -navit/maptool/Makefile -navit/fib-1.1/Makefile -navit/font/Makefile -navit/font/freetype/Makefile -navit/fonts/Makefile -navit/graphics/Makefile -navit/graphics/android/Makefile -navit/graphics/gd/Makefile -navit/graphics/gtk_drawing_area/Makefile -navit/graphics/opengl/Makefile -navit/graphics/null/Makefile -navit/graphics/sdl/Makefile -navit/graphics/qt_qpainter/Makefile -navit/graphics/win32/Makefile -navit/gui/Makefile -navit/gui/gtk/Makefile -navit/gui/internal/Makefile -navit/gui/win32/Makefile -navit/gui/qml/Makefile -navit/gui/qml/skins/Makefile -navit/gui/qml/skins/navit/Makefile -navit/osd/Makefile -navit/osd/core/Makefile -navit/plugin/Makefile -navit/plugin/pedestrian/Makefile -navit/speech/Makefile -navit/speech/android/Makefile -navit/speech/cmdline/Makefile -navit/speech/dbus/Makefile -navit/speech/espeak/Makefile -navit/speech/speech_dispatcher/Makefile -navit/support/Makefile -navit/support/espeak/Makefile -navit/support/ezxml/Makefile -navit/support/glib/Makefile -navit/support/libc/Makefile -navit/support/libpng/Makefile -navit/support/shapefile/Makefile -navit/support/win32/Makefile -navit/support/wordexp/Makefile -navit/support/zlib/Makefile -navit/vehicle/Makefile -navit/vehicle/android/Makefile -navit/vehicle/file/Makefile -navit/vehicle/gpsd/Makefile -navit/vehicle/gpsd_dbus/Makefile -navit/vehicle/gypsy/Makefile -navit/vehicle/maemo/Makefile -navit/vehicle/null/Makefile -navit/vehicle/demo/Makefile -navit/vehicle/wince/Makefile -navit/vehicle/iphone/Makefile -navit/vehicle/webos/Makefile -navit/xpm/Makefile -navit/maps/Makefile -intl/Makefile -po/Makefile -man/Makefile -]) -#src/data/garmin_img/Makefile - -AC_OUTPUT - - -echo "" -echo "" -echo "Summary of your installation :" -# FIXME : maybe elaborate missing dependencies -if test x"$graphics_sdl" != xyes - then - sdl_failures="(libsdl maybe?) " -fi -if test x"$glut" != xyes - then - sdl_failures=$sdl_failures"glut " -fi -if test -z "$sdl_failures" - then - echo "OpenGL gui : ENABLED, with $CEGUI_LIBS" - else - echo "OpenGL gui : DISABLED : you are missing $sdl_failures" -fi -if test x"$enable_hildon" = xyes - then - echo "Maemo/Hildon: ENABLED" - else - echo "Maemo/Hildon: DISABLED" -fi -if test x"$enable_osso" = xyes - then - echo "Maemo/OSSO: ENABLED" - else - echo "Maemo/OSSO: DISABLED" -fi -if test x"${USE_GARMIN}" = xyes - then - if test "x$use_libgarmin" = "xyes" - then - echo "Garmin IMG : ENABLED" - else - echo "Garmin IMG : DISABLED (you don't have libgarmin)" - fi - else - echo "Garmin IMG : DISABLED (you requested it)" -fi - -if test x"$LIBINTL" = "x" ;then - nls_libs="system gettext support" -else - nls_libs="$LIBINTL" -fi -echo "Plugins: $plugins ($plugins_reason)" -echo "Postgresql: $postgresql ($postgresql_reason)" -echo "Samplemap: $samplemap ($samplemap_reason)" -echo "NLS Support: $enable_nls ($nls_libs)" -echo "Routing: $routing ($routing_reason)" -echo "Font renderers:" -echo " freetype: $font_freetype ($font_freetype_reason)" -echo " FriBidi enabled: $fribidi ($fribidi_reason)" - -echo "Graphics types: $graphics ($graphics_reason)" -echo " android: $graphics_android ($graphics_android_reason)" -echo " gtk_drawing_area: $graphics_gtk_drawing_area ($graphics_gtk_drawing_area_reason)" -echo " null: $graphics_null ($graphics_null_reason)" -echo " qt_qpainter: $graphics_qt_qpainter ($graphics_qt_qpainter_reason)" -echo " win32: $graphics_win32 ($graphics_win32_reason)" -echo " OpenGL: $graphics_opengl ($graphics_opengl_reason)" -echo " gd: $graphics_gd ($graphics_gd_reason)" -echo " sdl: $graphics_sdl ($graphics_sdl_reason)" - -echo "GUI types:" -echo " gtk: $gui_gtk ($gui_gtk_reason)" -echo " internal: $gui_internal ($gui_internal_reason)" -echo " win32: $gui_win32 ($gui_win32_reason)" -echo " qml: $gui_qml ($gui_qml_reason)" - -echo "Map types:" -echo " binfile: $map_binfile ($map_binfile_reason)" -echo " filter: $map_filter ($map_filter_reason)" -echo " mg: $map_mg ($map_mg_reason)" -echo " shapefile: $map_shapefile ($map_shapefile_reason)" -echo " textfile: $map_textfile ($map_textfile_reason)" -echo " csv: $map_csv ($map_csv_reason)" - - -echo "Bindings:" -echo " dbus: $binding_dbus ($binding_dbus_reason)" -echo " python: $binding_python ($binding_python_reason)" - -echo "OSD types:" -echo " core: $osd_core ($osd_core_reason)" - -echo "Plugins:" -echo " pedestrian: $plugin_pedestrian ($plugin_pedestrian_reason)" - -echo "Speech types:" -echo " android: $speech_android ($speech_android_reason)" -echo " cmdline: $speech_cmdline ($speech_cmdline_reason)" -echo " dbus: $speech_dbus ($speech_dbus_reason)" -echo " espeak: $speech_espeak ($speech_espeak_reason)" -echo " speech_dispatcher: $speech_speech_dispatcher ($speech_speech_dispatcher_reason)" - -echo "Vehicle types:" -echo " android: $vehicle_android ($vehicle_android_reason)" -echo " demo: $vehicle_demo ($vehicle_demo_reason)" -echo " file: $vehicle_file ($vehicle_file_reason)" -echo " gpsd: $vehicle_gpsd ($vehicle_gpsd_reason)" -echo " gpsd_dbus: $vehicle_gpsd_dbus ($vehicle_gpsd_dbus_reason)" -echo " gypsy: $vehicle_gypsy ($vehicle_gypsy_reason)" -echo " maemo: $vehicle_maemo ($vehicle_maemo_reason)" -echo " null: $vehicle_null ($vehicle_null_reason)" -echo " wince: $vehicle_wince ($vehicle_wince_reason)" -echo " iphone: $vehicle_iphone ($vehicle_iphone_reason)" -echo " webos: $vehicle_webos ($vehicle_webos_reason)" - -if test "x${gtk2_pkgconfig}" != "xyes" -a "x${gui_win32}" != "xyes" -a "x${gui_internal}" != "xyes" -a "x${gui_qml}" != "xyes" -then - echo "" - echo "" - echo "*** WARNING! you have no gui that can be built! ***" - echo "Please install the dependency for at least gtk or sdl gui" - echo "For more details, see the wiki at http://wiki.navit-project.org/" - echo "" -fi - -echo "Support for autotools will be removed soon from navit, please use cmake instead" -sleep 5 diff --git a/man/Makefile.am b/man/Makefile.am deleted file mode 100644 index 44d6c2d5e..000000000 --- a/man/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -dist_man_MANS=maptool.1 navit.1 diff --git a/navit/Makefile.am b/navit/Makefile.am deleted file mode 100644 index 7115a6c6e..000000000 --- a/navit/Makefile.am +++ /dev/null @@ -1,247 +0,0 @@ -include $(top_srcdir)/Makefile.inc -comma=, -SUBDIRS=fib-1.1 support -if PLUGINS - SUBDIRS += . -endif -DIST_SUBDIRS=autoload binding map maptool fib-1.1 font fonts gui graphics osd plugin speech support vehicle xpm maps -SUBDIRS+=autoload binding map font gui graphics osd plugin speech vehicle xpm - -MODULES = $(wildcard $(top_builddir)/navit/binding/*/*.la $(top_builddir)/navit/font/*/*.la $(top_builddir)/navit/graphics/*/*.la $(top_builddir)/navit/gui/*/*.la $(top_builddir)/navit/map/*/*.la $(top_builddir)/navit/osd/*/*.la $(top_builddir)/navit/speech/*/*.la $(top_builddir)/navit/vehicle/*/*.la) - -if FONTS - SUBDIRS += fonts -endif -if !PLUGINS - SUBDIRS += . -endif - -if MAPTOOL - SUBDIRS += maptool -endif - -if BUILD_SAMPLEMAP - SUBDIRS += maps -endif - - -AM_CPPFLAGS = -I$(top_srcdir)/navit/fib-1.1 @NAVIT_CFLAGS@ @ZLIB_CFLAGS@ -DPREFIX=\"@prefix@\" -DLIBDIR=\"@libdir@\" -DMODULE=navit -BUILT_SOURCES = version.h navit_config.h - -if BIN_NAVIT - bin_PROGRAMS = navit -endif - -if SHARED_LIBNAVIT - lib_LTLIBRARIES = lib@LIBNAVIT@.la - lib@LIBNAVIT@_la_LDFLAGS = -avoid-version @MODULE_LDFLAGS@ @NAVIT_SOCKET_LDFLAGS@ -no-undefined -Wl,--no-undefined -else - noinst_LTLIBRARIES = lib@LIBNAVIT@.la -endif -lib@LIBNAVIT@_la_LIBADD = @NAVIT_LIBS@ @WORDEXP_LIBS@ @ZLIB_LIBS@ @INTLLIBS@ -Lfib-1.1 -lfib @MODULE_LIBADD@ @CRYPTO_LIBS@ - -if SUPPORT_WIN32CE - lib@LIBNAVIT@_la_LIBADD += -Lsupport/libc -lsupport_libc -endif - -pkgdata_DATA = navit.xml - -EXTRA_DIST = navit_shipped.xml navit.dtd - -lib@LIBNAVIT@_la_SOURCES = announcement.c atom.c attr.c cache.c callback.c command.c config_.c coord.c country.c data_window.c debug.c \ - event.c event_glib.h file.c geom.c graphics.c gui.c item.c layout.c log.c main.c map.c maps.c \ - linguistics.c mapset.c maptype.c menu.c messages.c bookmarks.c bookmarks.h navit.c navigation.c osd.c param.c phrase.c plugin.c popup.c \ - profile.c profile_option.c projection.c roadprofile.c route.c search.c search_houseno_interpol.c script.c speech.c start_real.c \ - transform.c track.c util.c vehicle.c vehicleprofile.c xmlconfig.c \ - announcement.h atom.h attr.h attr_def.h cache.h callback.h color.h command.h config_.h coord.h country.h \ - android.h data.h data_window.h data_window_int.h debug.h destination.h draw_info.h endianess.h event.h \ - file.h geom.h graphics.h gtkext.h gui.h item.h item_def.h keys.h log.h layer.h layout.h linguistics.h main.h map-share.h map.h\ - map_data.h mapset.h maptype.h menu.h messages.h navigation.h navit.h osd.h \ - param.h phrase.h plugin.h point.h plugin_def.h projection.h popup.h route.h profile.h roadprofile.h search.h search_houseno_interpol.h \ - speech.h start_real.h transform.h track.h types.h util.h vehicle.h vehicleprofile.h window.h xmlconfig.h zipfile.h \ - navit_lfs.h navit_nls.c navit_nls.h sunriset.c sunriset.h glib_slice.h - -XSLTS=@XSLTS@ -navit.xml: navit_shipped.xml $(foreach xslt, $(subst $(comma), ,$(XSLTS)), $(addsuffix .xslt,$(addprefix xslt/,$(xslt)))) navit_android_xml - cp $< navit.xml.new - if [ ! -f navit.dtd ]; then cp -f $(top_srcdir)/navit/navit.dtd .; fi - for i in $^; do if [ "$${i%.xslt}" != "$$i" ]; then echo "Applying $$i" ; @SAXON@ -snone navit.xml.new $$i >navit.xml.tmp || exit ; mv -f navit.xml.tmp navit.xml.new || exit ; fi ; done - mv -f navit.xml.new navit.xml - rm -f navit.xml.tmp - -navit_android_xml: navit_shipped.xml -if SUPPORT_ANDROID -# new android xml files for (mdpi,ldpi,hdpi) - cp $(srcdir)/navit_shipped.xml navit_android.xml.new - if [ ! -f navit.dtd ]; then cp -f $(top_srcdir)/navit/navit.dtd .; fi - -# # now apply any other xslt files (this would allow for pedestrian plugin) -# for i in $(foreach xslt, $(subst $(comma), ,$(XSLTS)), $(addsuffix .xslt,$(addprefix xslt/,$(xslt)))); do if [ "$${i%.xslt}" != "$$i" ]; then j=`basename $$i` ; if [ "$$j" != "android.xslt" ] ; then echo "Android: Applying $$i" ; @SAXON@ -snone navit_android.xml.new $(srcdir)/"$$i" >navit_android.xml.new.tmp || exit ; mv navit_android.xml.new.tmp navit_android.xml.new || exit ; fi ; fi ; done -# # for now disable pedestrian plugin (zoff99) - - @SAXON@ -snone navit_android.xml.new $(srcdir)/xslt/android_mdpi.xslt >navit_android_mdpi.xml.tmp - @SAXON@ -snone navit_android.xml.new $(srcdir)/xslt/android_ldpi.xslt >navit_android_ldpi.xml.tmp - @SAXON@ -snone navit_android.xml.new $(srcdir)/xslt/android_hdpi.xslt >navit_android_hdpi.xml.tmp - rm -f navit_android.xml.new - rm -f navit_android.xml.new.tmp - mv -f navit_android_mdpi.xml.tmp navit_android_mdpi.xml - mv -f navit_android_ldpi.xml.tmp navit_android_ldpi.xml - mv -f navit_android_hdpi.xml.tmp navit_android_hdpi.xml - rm -f navit_android_mdpi.xml.tmp - rm -f navit_android_ldpi.xml.tmp - rm -f navit_android_hdpi.xml.tmp -else - echo "no Android support" -endif - -if SUPPORT_ANDROID - lib@LIBNAVIT@_la_SOURCES += android.c - navit_SOURCES = - navit_LDADD = - -v_int = $$(cat $(srcdir)/android/Android_Market_Version_int.txt|grep v_int|cut -d ":" -f 2) -v_name = "0.5.0-"$$(LANG=C svnversion $(top_srcdir) 2> /dev/null|tr -d ":A-Z" 2> /dev/null) - -android/AndroidManifest.xml: android/AndroidManifest.xml.in - mkdir -p $(builddir)/android - sed '0,/$@ - for i in $(subst $(comma), ,@ANDROID_PERMISSIONS@); do echo " " >>$@; done - sed '0,/>$@ - sed -e "s/@ANDROID_VERSION_INT@/$(v_int)/" <$@ >android/AndroidManifest.xml.tmp - mv -f android/AndroidManifest.xml.tmp $@ - sed -e "s/@ANDROID_VERSION_NAME@/$(v_name)/" <$@ >android/AndroidManifest.xml.tmp - mv -f android/AndroidManifest.xml.tmp $@ - -android/build.xml: android/AndroidManifest.xml android/dummy.txt -# this is needed, otherwise somehow the files cant be deleted - mkdir -p $(builddir)/android/src/ - if [ "$(builddir)" != "$(srcdir)" ]; then chmod -R u+w $(builddir)/android/src/; fi - if [ "$(builddir)" != "$(srcdir)" ]; then rm -Rf $(builddir)/android/src/; fi - if [ "$(builddir)" != "$(srcdir)" ]; then cp -rpf $(srcdir)/android/* $(builddir)/android; fi - touch $(srcdir)/android/dummy.txt - touch $(builddir)/android/dummy.txt - android update project -t @ANDROID_PROJECT@ -p android - -apkg-all: all android/build.xml navit.xml - mkdir -p android/libs/armeabi - cp .libs/*.so android/libs/armeabi/libnavit.so - for i in */*/.libs/*.so ; do sed 's&lib_data_data_org\.navitproject\.navit_lib_&/data/data/org.navitproject.navit/lib/lib&' <$$i >android/libs/armeabi/$$(basename $$i); done - - for i in $(shell cd $(srcdir)/../po && echo ??_*.po.in ??.po.in); do echo Gnerating strings.xml from $$i ; mkdir -p $(builddir)/android/res/values-$$(echo $$i | sed -e s/\\.po\\.in// -e s/_/-r/) ; @SAXON@ $(srcdir)/android/res/values/strings.xml $(srcdir)/android/po2xml.xslt po_file=$(abs_top_srcdir)/po/$$i >$(builddir)/android/res/values-$$(echo $$i | sed -e s/\\.po\\.in// -e s/_/-r/)/strings.xml ; done - - mkdir -p android/res/drawable-ldpi - mkdir -p android/res/drawable-mdpi - mkdir -p android/res/drawable-hdpi - for i in $(shell cd $(srcdir)/xpm && echo *.xpm); do convert $(srcdir)/xpm/$$i android/res/drawable-mdpi/$${i%.xpm}.png; done - for i in $(shell cd $(srcdir)/xpm && echo *.xpm); do convert -resize 75% $(srcdir)/xpm/$$i android/res/drawable-ldpi/$${i%.xpm}.png; done - for i in $(shell cd $(srcdir)/xpm && echo *.xpm); do convert -resize 150% $(srcdir)/xpm/$$i android/res/drawable-hdpi/$${i%.xpm}.png; done - -# for i in $(shell cd $(srcdir)/xpm && echo *.png); do cp $(srcdir)/xpm/$$i android/res/drawable-mdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done -# for i in $(shell cd $(srcdir)/xpm && echo *.png); do cp $(srcdir)/xpm/$$i android/res/drawable-ldpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done -# for i in $(shell cd $(srcdir)/xpm && echo *.png); do cp $(srcdir)/xpm/$$i android/res/drawable-hdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done - - for i in $(shell cd $(srcdir)/xpm && echo *.png); do convert $(srcdir)/xpm/$$i android/res/drawable-mdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done - for i in $(shell cd $(srcdir)/xpm && echo *.png); do convert -resize 75% $(srcdir)/xpm/$$i android/res/drawable-ldpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done - for i in $(shell cd $(srcdir)/xpm && echo *.png); do convert -resize 150% $(srcdir)/xpm/$$i android/res/drawable-hdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done - -# if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do cp $(builddir)/xpm/$$i android/res/drawable-mdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi -# if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do cp $(builddir)/xpm/$$i android/res/drawable-ldpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi -# if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do cp $(builddir)/xpm/$$i android/res/drawable-hdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi - - if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do convert $(builddir)/xpm/$$i android/res/drawable-mdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi - if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do convert -resize 75% $(builddir)/xpm/$$i android/res/drawable-ldpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi - if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do convert -resize 150% $(builddir)/xpm/$$i android/res/drawable-hdpi/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi - - mkdir -p android/res/raw - for i in $(shell cd ../po && echo *.mo); do cp ../po/$$i android/res/raw/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done -# cp navit.xml android/res/raw - cp navit_android_mdpi.xml android/res/raw/navitmdpi.xml - cp navit_android_ldpi.xml android/res/raw/navitldpi.xml - cp navit_android_hdpi.xml android/res/raw/navithdpi.xml - -apkg: apkg-all - touch $(srcdir)/android/dummy.txt - touch $(builddir)/android/dummy.txt - cd android && ant debug - -apkg-release: apkg-all - touch $(srcdir)/android/dummy.txt - touch $(builddir)/android/dummy.txt - cd android && ant release - jarsigner $$(cat ~/.keystore_args) android/bin/Navit-unsigned.apk mykey -# zipalign -f 4 android/bin/Navit-unsigned.apk android/bin/Navit-unsigned-aligned.apk -else -navit_SOURCES = start.c -navit_LDADD = lib@LIBNAVIT@.la - -endif - -if EVENT_GLIB - lib@LIBNAVIT@_la_SOURCES += event_glib.c -endif - -navit_LDFLAGS = -export-dynamic - -if !PLUGINS - lib@LIBNAVIT@_la_SOURCES += builtin.c - lib@LIBNAVIT@_la_LIBADD += $(MODULES) -endif - - -navit_LDADD += @NAVIT_LIBS@ @WORDEXP_LIBS@ @ZLIB_LIBS@ @CRYPTO_LIBS@ @INTLLIBS@ - - -if SUPPORT_WIN32 - navit_LDADD += resource.rsc -if SUPPORT_WIN32CE - navit_LDADD += -lcommctrl -Lsupport/libc -else - navit_LDADD += -lgdi32 -lcomctl32 -lwinmm -endif - - -resource.rsc: $(top_srcdir)/navit/gui/win32/resources/resource.rc - $(WINDRES) -I $(top_srcdir)/navit/gui/win32/resources $(top_srcdir)/navit/gui/win32/resources/resource.rc resource.rsc -endif - -.PHONY: version.h.tmp - -version.h.tmp: - echo "#include \"config.h\"" >version.h.tmp -if SOURCE_MODE_SVN - echo "#define SVN_VERSION \"$$(LANG=C svnversion $(top_srcdir) 2>/dev/null)\"" >>version.h.tmp -else - echo "#define SVN_VERSION \"@SOURCE_MODE@\"" >>version.h.tmp -endif - echo "#define NAVIT_VARIANT \"@NAVIT_VARIANT@\"" >>version.h.tmp - if ! diff version.h.tmp version.h >/dev/null 2>/dev/null; \ - then \ - mv -f version.h.tmp version.h; \ - fi - -version.h: version.h.tmp - -navit_config.h: ../config.h - cp ../config.h navit_config.h.tmp - if ! diff navit_config.h.tmp navit_config.h >/dev/null 2>/dev/null; \ - then \ - mv -f navit_config.h.tmp navit_config.h; \ - fi - - -distclean-local: - rm -f version.h version.h.tmp navit_config.h navit_config.h.tmp builtin.c support-builtin.c navit.xml resurce.rsc - if [ "$(top_builddir)" != "$(top_srcdir)" ]; then rm -f navit.dtd; fi - -builtin.c: $(top_builddir)/config.h - ls $(top_builddir)/navit/*/*/*.la | sed -e "s/\.la/_init(void);/" -e "s/.*lib/extern void module_/" >builtin.c - echo "extern void builtin_init(void);" >>builtin.c - echo "void builtin_init(void) {" >>builtin.c - ls $(top_builddir)/navit/*/*/*.la | grep -v shapefile | sed -e "s/\.la/_init();/" -e "s/.*\\/lib/ module_/" >>builtin.c - echo "}" >>builtin.c -support-builtin.c: $(top_builddir)/config.h - ls $(top_builddir)/navit/support/*/*.la | sed -e "s/\.la/_init(void);/" -e "s/.*lib/extern void module_/" >support-builtin.c - echo "extern void builtin_init(void);" >>support-builtin.c - echo "void builtin_init(void) {" >>support-builtin.c - ls $(top_builddir)/navit/support/*/*.la | sed -e "s/\.la/_init();/" -e "s/.*\\/lib/ module_/" >>support-builtin.c - echo "}" >>support-builtin.c diff --git a/navit/autoload/Makefile.am b/navit/autoload/Makefile.am deleted file mode 100644 index 4ca10b6fa..000000000 --- a/navit/autoload/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIRS= -if USE_OSSO - SUBDIRS += osso -endif - -DIST_SUBDIRS= osso diff --git a/navit/autoload/osso/Makefile.am b/navit/autoload/osso/Makefile.am deleted file mode 100644 index bb965beb3..000000000 --- a/navit/autoload/osso/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @LIBOSSO_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -DMODULE=plugin_osso -moduleautoload_LTLIBRARIES = libplugin_osso.la -libplugin_osso_la_LDFLAGS=-module -avoid-version @NAVIT_MODULE_LDFLAGS@ @LIBOSSO_LIBS@ #-Wl,--no-undefined - -libplugin_osso_la_SOURCES = osso.c diff --git a/navit/binding/Makefile.am b/navit/binding/Makefile.am deleted file mode 100644 index 6b782b48a..000000000 --- a/navit/binding/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -SUBDIRS= -if BINDING_PYTHON - SUBDIRS+=python -endif -if BINDING_DBUS - SUBDIRS+=dbus -endif - -if BINDING_WIN32 - SUBDIRS+=win32 -endif - - -DIST_SUBDIRS=python dbus win32 - diff --git a/navit/binding/dbus/Makefile.am b/navit/binding/dbus/Makefile.am deleted file mode 100644 index 1e6334291..000000000 --- a/navit/binding/dbus/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @DBUS_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=binding_dbus -modulebinding_LTLIBRARIES = libbinding_dbus.la -libbinding_dbus_la_SOURCES = binding_dbus.c -libbinding_dbus_la_LIBADD = @DBUS_LIBS@ -libbinding_dbus_la_LDFLAGS = -module -avoid-version - -servicedir = @DBUS_SERVICE_DIR@ -service_in_files = org.navit_project.navit.service.in -service_DATA = $(service_in_files:.service.in=.service) - -$(service_DATA): $(service_in_files) Makefile - sed -e "s|\@bindir\@|$(bindir)|" $< > $@ - -EXTRA_DIST = $(service_in_files) - -distclean-local: - rm -f $(service_DATA) diff --git a/navit/binding/python/Makefile.am b/navit/binding/python/Makefile.am deleted file mode 100644 index a71632317..000000000 --- a/navit/binding/python/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @PYTHON_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=binding_python -modulebinding_LTLIBRARIES = libbinding_python.la -libbinding_python_la_SOURCES = binding_python.c config.c navit.c pcoord.c route.c navigation.c attr.c common.h -libbinding_python_la_LIBADD = @PYTHON_LIBS@ -libbinding_python_la_LDFLAGS = -module -avoid-version diff --git a/navit/binding/win32/Makefile.am b/navit/binding/win32/Makefile.am deleted file mode 100644 index f25c28d3e..000000000 --- a/navit/binding/win32/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = -I$(top_srcdir)/navit -I$(top_srcdir)/navit/binding/win32 @NAVIT_CFLAGS@ -DMODULE=binding_win32 -if PLUGINS -modulebinding_LTLIBRARIES = libbinding_win32.la -else -noinst_LTLIBRARIES = libbinding_win32.la -endif -libbinding_win32_la_SOURCES = binding_win32.c binding_win32.h -libbinding_win32_la_LIBADD = -libbinding_win32_la_LDFLAGS = -module -avoid-version -bin_PROGRAMS=tell_navit -tell_navit_LDADD = @NAVIT_LIBS@ -if SUPPORT_WIN32CE - tell_navit_LDADD += -L$(top_builddir)/navit/support/libc -lsupport_libc -endif diff --git a/navit/fib-1.1/Makefile.am b/navit/fib-1.1/Makefile.am deleted file mode 100644 index 7c7b2a130..000000000 --- a/navit/fib-1.1/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -noinst_LTLIBRARIES = libfib.la -libfib_la_SOURCES = fib.c fib.h fibpriv.h -EXTRA_DIST=README configure.in fh_extractmin.3 fh_makeheap.3 fh_makekeyheap.3 fibtest.c fibtest2.c tt.c use.c diff --git a/navit/font/Makefile.am b/navit/font/Makefile.am deleted file mode 100644 index 620280e6f..000000000 --- a/navit/font/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -SUBDIRS= -if FONT_FREETYPE - SUBDIRS+=freetype -endif diff --git a/navit/font/freetype/Makefile.am b/navit/font/freetype/Makefile.am deleted file mode 100644 index 4c081e391..000000000 --- a/navit/font/freetype/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @FREETYPE2_CFLAGS@ @FONTCONFIG_CFLAGS@ @FRIBIDI2_CFLAGS@ @FRIBIDI_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=font_freetype -if PLUGINS - modulefont_LTLIBRARIES = libfont_freetype.la -else - noinst_LTLIBRARIES = libfont_freetype.la -endif -libfont_freetype_la_SOURCES = font_freetype.c font_freetype.h -libfont_freetype_la_LDFLAGS = @FREETYPE2_LIBS@ @FONTCONFIG_LIBS@ @FRIBIDI2_LIBS@ @FRIBIDI_LIBS@ -module -avoid-version diff --git a/navit/fonts/Makefile.am b/navit/fonts/Makefile.am deleted file mode 100644 index d8ea2633b..000000000 --- a/navit/fonts/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -include $(top_srcdir)/Makefile.inc - -fonts_DATA = -fonts_DATA += LiberationMono-Bold.ttf -fonts_DATA += LiberationMono-BoldItalic.ttf -fonts_DATA += LiberationMono-Italic.ttf -fonts_DATA += LiberationMono-Regular.ttf -fonts_DATA += LiberationSans-Bold.ttf -fonts_DATA += LiberationSans-BoldItalic.ttf -fonts_DATA += LiberationSans-Italic.ttf -fonts_DATA += LiberationSans-Regular.ttf -fonts_DATA += LiberationSerif-Bold.ttf -fonts_DATA += LiberationSerif-BoldItalic.ttf -fonts_DATA += LiberationSerif-Italic.ttf -fonts_DATA += LiberationSerif-Regular.ttf diff --git a/navit/graphics/Makefile.am b/navit/graphics/Makefile.am deleted file mode 100644 index c878b9a35..000000000 --- a/navit/graphics/Makefile.am +++ /dev/null @@ -1,25 +0,0 @@ -SUBDIRS= -if GRAPHICS_ANDROID - SUBDIRS+=android -endif -if GRAPHICS_GTK_DRAWING_AREA - SUBDIRS+=gtk_drawing_area -endif -if GRAPHICS_NULL - SUBDIRS+=null -endif -if GRAPHICS_OPENGL - SUBDIRS+=opengl -endif -if GRAPHICS_QT_QPAINTER - SUBDIRS+=qt_qpainter -endif -if GRAPHICS_SDL - SUBDIRS+=sdl -endif -if GRAPHICS_WIN32 - SUBDIRS+=win32 -endif -if GRAPHICS_GD - SUBDIRS+=gd -endif diff --git a/navit/graphics/android/Makefile.am b/navit/graphics/android/Makefile.am deleted file mode 100644 index a625edd1c..000000000 --- a/navit/graphics/android/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_android -if PLUGINS -modulegraphics_LTLIBRARIES = libgraphics_android.la -else -noinst_LTLIBRARIES = libgraphics_android.la -endif -libgraphics_android_la_SOURCES = graphics_android.c -libgraphics_android_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/graphics/gd/Makefile.am b/navit/graphics/gd/Makefile.am deleted file mode 100644 index 67fc270ac..000000000 --- a/navit/graphics/gd/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @GD_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -DMODULE=graphics_gd -libgraphics_gd_la_LDFLAGS = @GD_LIBS@ -module -avoid-version -if PLUGINS -modulegraphics_LTLIBRARIES = libgraphics_gd.la -else -noinst_LTLIBRARIES = libgraphics_gd.la -endif -libgraphics_gd_la_SOURCES = graphics_gd.c diff --git a/navit/graphics/gtk_drawing_area/Makefile.am b/navit/graphics/gtk_drawing_area/Makefile.am deleted file mode 100644 index 79da228d7..000000000 --- a/navit/graphics/gtk_drawing_area/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @GTK2_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -DMODULE=graphics_gtk_drawing_area -modulegraphics_LTLIBRARIES = libgraphics_gtk_drawing_area.la -libgraphics_gtk_drawing_area_la_SOURCES = graphics_gtk_drawing_area.c -libgraphics_gtk_drawing_area_la_LDFLAGS = @GTK2_LIBS@ @IMLIB2_LIBS@ -module -avoid-version diff --git a/navit/graphics/null/Makefile.am b/navit/graphics/null/Makefile.am deleted file mode 100644 index a4631ff4a..000000000 --- a/navit/graphics/null/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_null -if PLUGINS -modulegraphics_LTLIBRARIES = libgraphics_null.la -else -noinst_LTLIBRARIES = libgraphics_null.la -endif -libgraphics_null_la_SOURCES = graphics_null.c -libgraphics_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/graphics/opengl/Makefile.am b/navit/graphics/opengl/Makefile.am deleted file mode 100644 index 02d356dd7..000000000 --- a/navit/graphics/opengl/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @OPENGL_CFLAGS@ @GLC_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_opengl -modulegraphics_LTLIBRARIES = libgraphics_opengl.la -libgraphics_opengl_la_SOURCES = graphics_opengl.c -libgraphics_opengl_la_LIBADD = @OPENGL_LIBS@ @GLC_LIBS@ -libgraphics_opengl_la_LDFLAGS = -module -avoid-version diff --git a/navit/graphics/qt_qpainter/Makefile.am b/navit/graphics/qt_qpainter/Makefile.am deleted file mode 100644 index 8c55917c7..000000000 --- a/navit/graphics/qt_qpainter/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @QT_GUI_CFLAGS@ @QT_SVG_CFLAGS@ @NAVIT_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -I$(top_srcdir)/navit/graphics/qt_qpainter -DMODULE=graphics_qt_qpainter -modulegraphics_LTLIBRARIES = libgraphics_qt_qpainter.la -libgraphics_qt_qpainter_la_SOURCES = graphics_qt_qpainter.cpp graphics_qt_qpainter.h RenderArea.cpp RenderArea.h RenderArea.moc -libgraphics_qt_qpainter_la_LDFLAGS = @QT_GUI_LIBS@ @QT_SVG_LIBS@ -module -avoid-version -if GRAPHICS_QT_QPAINTER -BUILT_SOURCES = RenderArea.moc -RenderArea.moc: - @MOC@ $(srcdir)/RenderArea.h >RenderArea.moc || touch RenderArea.moc - -distclean-local: - $(RM) RenderArea.moc -endif diff --git a/navit/graphics/sdl/Makefile.am b/navit/graphics/sdl/Makefile.am deleted file mode 100644 index 1c9b4056d..000000000 --- a/navit/graphics/sdl/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @SDL_CFLAGS@ @FREETYPE2_CFLAGS@ @LIBPDL_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_sdl -modulegraphics_LTLIBRARIES = libgraphics_sdl.la -libgraphics_sdl_la_SOURCES = graphics_sdl.c raster.c raster.h -libgraphics_sdl_la_LDFLAGS = @SDL_LIBS@ @SDL_IMAGE_LIBS@ @FREETYPE2_LIBS@ @LIBPDL_LIBS@ -module -avoid-version diff --git a/navit/graphics/win32/Makefile.am b/navit/graphics/win32/Makefile.am deleted file mode 100644 index 15ec2441c..000000000 --- a/navit/graphics/win32/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @ZLIB_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_win32 -libgraphics_win32_la_SOURCES = graphics_win32.c xpm2bmp.c -libgraphics_win32_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -if !SUPPORT_WIN32CE -libgraphics_win32_la_LDFLAGS += -Wl,-lgdi32 -endif -if PLUGINS -modulegraphics_LTLIBRARIES = libgraphics_win32.la -else -noinst_LTLIBRARIES = libgraphics_win32.la -endif diff --git a/navit/gui/Makefile.am b/navit/gui/Makefile.am deleted file mode 100644 index 10086b5a1..000000000 --- a/navit/gui/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -SUBDIRS= -if GUI_INTERNAL - SUBDIRS += internal -endif -if GUI_GTK - SUBDIRS += gtk -endif -if GUI_WIN32 - SUBDIRS += win32 -endif -if GUI_QML - SUBDIRS += qml -endif \ No newline at end of file diff --git a/navit/gui/gtk/Makefile.am b/navit/gui/gtk/Makefile.am deleted file mode 100644 index ddcfc2ae3..000000000 --- a/navit/gui/gtk/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = -I$(top_srcdir)/navit @NAVIT_CFLAGS@ @HILDON_CFLAGS@ @GTK2_CFLAGS@ -DMODULE=gui_gtk -modulegui_LTLIBRARIES = libgui_gtk.la -libgui_gtk_la_SOURCES = datawindow.c destination.c gui_gtk_statusbar.c gui_gtk_action.c gui_gtk_window.c gui_gtk_poi.c gui_gtk.h gui_gtk_poi.h -libgui_gtk_la_LIBADD = @GTK2_LIBS@ -libgui_gtk_la_LDFLAGS = -module -avoid-version diff --git a/navit/gui/internal/Makefile.am b/navit/gui/internal/Makefile.am deleted file mode 100644 index ed819ce4e..000000000 --- a/navit/gui/internal/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/navit -I$(top_srcdir)/navit/fib-1.1 @NAVIT_CFLAGS@ -DMODULE=gui_internal -if PLUGINS -modulegui_LTLIBRARIES = libgui_internal.la -else -noinst_LTLIBRARIES = libgui_internal.la -endif -libgui_internal_la_SOURCES = gui_internal_bookmark.c gui_internal.c gui_internal_command.c gui_internal_gesture.c gui_internal_html.c gui_internal_keyboard.c gui_internal_menu.c gui_internal_poi.c gui_internal_search.c gui_internal_widget.c gui_internal_bookmark.h gui_internal_command.h gui_internal_gesture.h gui_internal.h gui_internal_html.h gui_internal_keyboard.h gui_internal_menu.h gui_internal_poi.h gui_internal_priv.h gui_internal_search.h gui_internal_widget.h -libgui_internal_la_LIBADD = -libgui_internal_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/gui/qml/Makefile.am b/navit/gui/qml/Makefile.am deleted file mode 100644 index a52b399b2..000000000 --- a/navit/gui/qml/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @QT_DECLARATIVE_CFLAGS@ @QT_GUI_CFLAGS@ @QT_XML_CFLAGS@ @NAVIT_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -DMODULE=gui_qml -modulegui_LTLIBRARIES = libgui_qml.la -libgui_qml_la_SOURCES = proxy.moc proxy.h ngqpoint.moc ngqpoint.h searchProxy.moc routeProxy.h searchProxy.h bookmarksProxy.moc bookmarksProxy.h vehicleProxy.moc vehicleProxy.h navitProxy.moc navitProxy.h guiProxy.moc guiProxy.h gui_qml.moc gui_qml.cpp -libgui_qml_la_LDFLAGS = @QT_DECLARATIVE_LIBS@ @QT_GUI_LIBS@ @QT_XML_LIBS@ -module -avoid-version -BUILT_SOURCES = gui_qml.moc proxy.moc ngqpoint.moc routeProxy.moc searchProxy.moc bookmarksProxy.moc vehicleProxy.moc navitProxy.moc guiProxy.moc -%.moc: %.h - @MOC@ $(srcdir)/$< > $@ || touch $@ -%.moc: %.cpp - @MOC@ $(srcdir)/$< > $@ || touch $@ -distclean-local: - -$(RM) *.moc - -SUBDIRS=skins diff --git a/navit/gui/qml/skins/Makefile.am b/navit/gui/qml/skins/Makefile.am deleted file mode 100644 index e0f29a206..000000000 --- a/navit/gui/qml/skins/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS=navit \ No newline at end of file diff --git a/navit/gui/qml/skins/navit/Makefile.am b/navit/gui/qml/skins/navit/Makefile.am deleted file mode 100644 index 0842a330c..000000000 --- a/navit/gui/qml/skins/navit/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc - -SKIN = navit - -qmldir=$(skinsdir)/$(SKIN) - -qml_DATA = ButtonIcon.qml ToggleSwitch.qml ToggleButton.qml ListSelector.qml Slider.qml CommonHighlight.qml Cellar.qml main.qml PageMain.qml PageNavigate.qml PageAbout.qml PageBookmarksAdd.qml PageBookmarks.qml PageRoute.qml PageSearch.qml PageSearchSelector.qml PageSettingsDisplay.qml PageSettingsLocale.qml PageSettings.qml PageSettingsRules.qml PageSettingsTools.qml PageSettingsVehicle.qml PagePoi.qml PagePointInfo.qml -qml_DATA += background.svg knob.svg -qml_DATA += command.js pagenavigation.js diff --git a/navit/gui/win32/Makefile.am b/navit/gui/win32/Makefile.am deleted file mode 100644 index 06d91fac6..000000000 --- a/navit/gui/win32/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = -I$(top_srcdir)/navit -I$(top_srcdir)/navit/graphics/win32 @NAVIT_CFLAGS@ -DMODULE=gui_win32 -if PLUGINS -modulegui_LTLIBRARIES = libgui_win32.la -else -noinst_LTLIBRARIES = libgui_win32.la -endif -libgui_win32_la_SOURCES = gui_win32.c win32_gui_destination.c win32_gui_notify.c ceglue.h ceglue.c -libgui_win32_la_LIBADD = -libgui_win32_la_LDFLAGS = -module -avoid-version diff --git a/navit/map/Makefile.am b/navit/map/Makefile.am deleted file mode 100644 index d2b6efdc5..000000000 --- a/navit/map/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -SUBDIRS= -if MAP_BINFILE - SUBDIRS+=binfile -endif -if MAP_FILTER - SUBDIRS+=filter -endif -if HAVELIBGARMIN - SUBDIRS+=garmin -endif -if MAP_MG - SUBDIRS+=mg -endif -if MAP_SHAPEFILE - SUBDIRS+=shapefile -endif -if MAP_TEXTFILE - SUBDIRS+=textfile -endif -if MAP_CSV - SUBDIRS+=csv -endif - -DIST_SUBDIRS=mg textfile csv binfile garmin shapefile filter diff --git a/navit/map/binfile/Makefile.am b/navit/map/binfile/Makefile.am deleted file mode 100644 index 6bf671175..000000000 --- a/navit/map/binfile/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_binfile -if PLUGINS - modulemap_LTLIBRARIES = libmap_binfile.la -else - noinst_LTLIBRARIES = libmap_binfile.la -endif -libmap_binfile_la_SOURCES = binfile.c -libmap_binfile_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/map/csv/Makefile.am b/navit/map/csv/Makefile.am deleted file mode 100644 index d8670ea2c..000000000 --- a/navit/map/csv/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_csv -if PLUGINS - modulemap_LTLIBRARIES = libmap_csv.la -else - noinst_LTLIBRARIES = libmap_csv.la -endif -libmap_csv_la_SOURCES = csv.c csv.h quadtree.c quadtree.h -libmap_csv_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/map/filter/Makefile.am b/navit/map/filter/Makefile.am deleted file mode 100644 index 3bd14e8bf..000000000 --- a/navit/map/filter/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_filter -if PLUGINS - modulemap_LTLIBRARIES = libmap_filter.la -else - noinst_LTLIBRARIES = libmap_filter.la -endif -libmap_filter_la_SOURCES = filter.c -libmap_filter_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/map/garmin/Makefile.am b/navit/map/garmin/Makefile.am deleted file mode 100644 index 8fa224fc1..000000000 --- a/navit/map/garmin/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_garmin -AM_CPPFLAGS+= @LIBGARMIN_CFLAGS@ -INCLUDES=-I$(top_srcdir)/navit/map/garmin/libgarmin -AM_CPPFLAGS+=-I$(top_srcdir)/navit/map/garmin/libgarmin -AM_CPPFLAGS+=-I$(srcdir) - -modulemap_LTLIBRARIES = libmap_garmin.la -libmap_garmin_la_SOURCES = garmin.c garmin.h gar2navit.c gar2navit.h -libmap_garmin_la_LIBADD = @LIBGARMIN_LIBS@ -libmap_garmin_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -nodist_libmap_garmin_la_SOURCES = g2nbuiltin.h -builddir = @builddir@ - -gar2navit.l$(OBJEXT): g2nbuiltin.h - -CLEANFILES = g2nbuiltin.h - -noinst_PROGRAMS=gentypes$(EXEEXT) -gentypes_SOURCES=gentypes.c - -gentypes.$(OBJEXT): gentypes.c - $(CC_FOR_BUILD) -I$(top_srcdir)/navit -I$(top_srcdir) -c -o $@ $< - -gentypes$(EXEEXT): $(gentypes_OBJECTS) $(gentypes_DEPENDENCIES) - @rm -f gentypes$(EXEEXT) - $(CCLD_FOR_BUILD) -o $@ $(gentypes_OBJECTS) - -g2nbuiltin.h: gentypes$(EXEEXT) garmintypes.txt - ./gentypes$(EXEEXT) $(top_srcdir)/navit/map/garmin/garmintypes.txt $@ - -EXTRA_DIST = garmintypes.txt - diff --git a/navit/map/garmin_img/Makefile.am b/navit/map/garmin_img/Makefile.am deleted file mode 100644 index dbbcd9b55..000000000 --- a/navit/map/garmin_img/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_garmin_img -modulemap_LTLIBRARIES = libmap_garmin_img.la -libmap_garmin_img_la_SOURCES = garmin_img.c -libmap_garmin_img_la_LDFLAGS = -module -avoid-version diff --git a/navit/map/mg/Makefile.am b/navit/map/mg/Makefile.am deleted file mode 100644 index ee05be835..000000000 --- a/navit/map/mg/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_mg -if PLUGINS - modulemap_LTLIBRARIES = libmap_mg.la -else - noinst_LTLIBRARIES = libmap_mg.la -endif -libmap_mg_la_SOURCES = map.c block.c town.c tree.c poly.c street.c mg.h -libmap_mg_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/map/shapefile/Makefile.am b/navit/map/shapefile/Makefile.am deleted file mode 100644 index f23fb8278..000000000 --- a/navit/map/shapefile/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @SHAPEFILE_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_shapefile -if PLUGINS - modulemap_LTLIBRARIES = libmap_shapefile.la -else - noinst_LTLIBRARIES = libmap_shapefile.la -endif -libmap_shapefile_la_SOURCES = shapefile.c -libmap_shapefile_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -if HAVE_SYSTEM_SHAPEFILELIB -libmap_shapefile_la_LIBADD = @SHAPEFILE_LIBS@ -else -libmap_shapefile_la_LIBADD = $(top_builddir)/navit/support/shapefile/libsupport_shapefile.la -endif diff --git a/navit/map/textfile/Makefile.am b/navit/map/textfile/Makefile.am deleted file mode 100644 index b3190e7f7..000000000 --- a/navit/map/textfile/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=map_textfile -if PLUGINS - modulemap_LTLIBRARIES = libmap_textfile.la -else - noinst_LTLIBRARIES = libmap_textfile.la -endif -libmap_textfile_la_SOURCES = textfile.c textfile.h -libmap_textfile_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/maps/Makefile.am b/navit/maps/Makefile.am deleted file mode 100644 index 798ca6d5c..000000000 --- a/navit/maps/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -include $(top_srcdir)/Makefile.inc - -.SECONDARY: - -SAMPLE_MAP=osm_bbox_11.3,47.9,11.7,48.2 - -maptool_args=--attr-debug-level=5 -maptool=$(top_builddir)/navit/maptool/maptool - -maps_DATA = $(SAMPLE_MAP).bin $(SAMPLE_MAP).xml - -SUFFIXES=.osm.bz2 .osm.pbf .txt .shp .osm - -samplemap: $(SAMPLE_MAP).bin - -.osm.bin: - echo "Converting osm map" - $(maptool) $(maptool_args) $@.tmp <$< - mv $@.tmp $@ - -.txt.bin: - $(maptool) $(maptool_args) $@.tmp -p $(top_builddir)/navit/map/textfile/libmap_textfile.la -m "type=textfile data="$< - mv $@.tmp $@ - -.shp.bin: - $(maptool) $(maptool_args) $@.tmp -p $(top_builddir)/navit/map/shapefile/libmap_shapefile.la -m "type=shapefile data=$(subst .shp,,$<) $(SHAPEFILE_ATTRIBUTES)" - mv $@.tmp $@ - -.osm.bz2.bin: - echo "Converting osm map" - bzcat $< | $(maptool) $(maptool_args) $@.tmp - mv $@.tmp $@ - -.osm.pbf.bin: - echo "Converting osm map" - $(maptool) --protobuf $(maptool_args) $@.tmp <$< - mv $@.tmp $@ - -.bin.xml: - echo '' >$@ - - -$(SAMPLE_MAP).osm.bz2: - echo "Downloading osm sample map" - wget -O $(SAMPLE_MAP).osm.bz2.tmp http://www.navit-project.org/maps/$(SAMPLE_MAP).osm.bz2 - mv $(SAMPLE_MAP).osm.bz2.tmp $(SAMPLE_MAP).osm.bz2 - -distclean-local: - rm -f $(SAMPLE_MAP).osm.bz2 $(SAMPLE_MAP).bin $(SAMPLE_MAP).xml - -all: diff --git a/navit/maptool/Makefile.am b/navit/maptool/Makefile.am deleted file mode 100644 index 95454a058..000000000 --- a/navit/maptool/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -include $(top_srcdir)/Makefile.inc -if !SUPPORT_ANDROID - bin_PROGRAMS = maptool - noinst_LTLIBRARIES = libmaptool.la -endif - -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit @ZLIB_CFLAGS@ @POSTGRESQL_CFLAGS@ -DMODULE=maptool -libmaptool_la_SOURCES = boundaries.c buffer.c ch.c coastline.c itembin.c itembin_buffer.c misc.c osm.c osm_o5m.c osm_psql.c osm_protobuf.c osm_protobufdb.c osm_relations.c osm_xml.c sourcesink.c tempfile.c tile.c zip.c maptool.h generated-code/fileformat.pb-c.c generated-code/fileformat.pb-c.h generated-code/osmformat.pb-c.c generated-code/osmformat.pb-c.h google/protobuf-c/protobuf-c.c google/protobuf-c/protobuf-c.h google/protobuf-c/protobuf-c-private.h -maptool_SOURCES = maptool.c -maptool_LDADD = libmaptool.la ../libnavit.la @NAVIT_LIBS@ @WORDEXP_LIBS@ @ZLIB_LIBS@ @POSTGRESQL_LIBS@ @CRYPTO_LIBS@ @INTLLIBS@ @LIBC_LIBS@ diff --git a/navit/osd/Makefile.am b/navit/osd/Makefile.am deleted file mode 100644 index f14eff62d..000000000 --- a/navit/osd/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIRS= -DIST_SUBDIRS=core - -if OSD_CORE - SUBDIRS+=core -endif diff --git a/navit/osd/core/Makefile.am b/navit/osd/core/Makefile.am deleted file mode 100644 index 10f17f8d2..000000000 --- a/navit/osd/core/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=osd_core -if PLUGINS - moduleosd_LTLIBRARIES = libosd_core.la -else - noinst_LTLIBRARIES = libosd_core.la -endif -libosd_core_la_SOURCES = osd_core.c -libosd_core_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ - diff --git a/navit/plugin/Makefile.am b/navit/plugin/Makefile.am deleted file mode 100644 index da51c76af..000000000 --- a/navit/plugin/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIRS= -if PLUGIN_PEDESTRIAN - SUBDIRS += pedestrian -endif - -DIST_SUBDIRS=pedestrian diff --git a/navit/plugin/pedestrian/Makefile.am b/navit/plugin/pedestrian/Makefile.am deleted file mode 100644 index 9427f44d5..000000000 --- a/navit/plugin/pedestrian/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/navit -DMODULE=plugin_pedestrian -moduleplugin_LTLIBRARIES = libplugin_pedestrian.la -libplugin_pedestrian_la_LDFLAGS=-module -avoid-version @NAVIT_MODULE_LDFLAGS@ #-Wl,--no-undefined - -libplugin_pedestrian_la_SOURCES = pedestrian.c - -android: libplugin_pedestrian.la - cp .libs/libplugin_pedestrian.so ../../android/libs/armeabi -xslt: - cp *.xslt ../../xslt diff --git a/navit/speech/Makefile.am b/navit/speech/Makefile.am deleted file mode 100644 index 3c232db0b..000000000 --- a/navit/speech/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -SUBDIRS= -if SPEECH_ANDROID - SUBDIRS += android -endif -if SPEECH_CMDLINE - SUBDIRS += cmdline -endif -if SPEECH_DBUS - SUBDIRS += dbus -endif -if SPEECH_ESPEAK - SUBDIRS += espeak -endif -if SPEECH_SPEECH_DISPATCHER - SUBDIRS += speech_dispatcher -endif diff --git a/navit/speech/android/Makefile.am b/navit/speech/android/Makefile.am deleted file mode 100644 index c2a0dc350..000000000 --- a/navit/speech/android/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=speech_android -if PLUGINS -modulespeech_LTLIBRARIES = libspeech_android.la -else -noinst_LTLIBRARIES = libspeech_android.la -endif -libspeech_android_la_SOURCES = speech_android.c -libspeech_android_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ - - -android: libspeech_android.la - mkdir -p ../../android/libs/armeabi/navit/speech - cp .libs/libspeech_android.so ../../android/libs/armeabi - -push: libspeech_android.la - adb push .libs/libspeech_android.so /data/data/org.navitproject.navit/lib diff --git a/navit/speech/cmdline/Makefile.am b/navit/speech/cmdline/Makefile.am deleted file mode 100644 index 4597bd934..000000000 --- a/navit/speech/cmdline/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=speech_cmdline -if PLUGINS -modulespeech_LTLIBRARIES = libspeech_cmdline.la -else -noinst_LTLIBRARIES = libspeech_cmdline.la -endif -libspeech_cmdline_la_SOURCES = speech_cmdline.c -libspeech_cmdline_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/speech/dbus/Makefile.am b/navit/speech/dbus/Makefile.am deleted file mode 100644 index abe285b15..000000000 --- a/navit/speech/dbus/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=speech_dbus -modulespeech_LTLIBRARIES = libspeech_dbus.la -libspeech_dbus_la_SOURCES = speech_dbus.c -libspeech_dbus_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/speech/espeak/Makefile.am b/navit/speech/espeak/Makefile.am deleted file mode 100644 index ecdb50324..000000000 --- a/navit/speech/espeak/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=speech_espeak -if PLUGINS -modulespeech_LTLIBRARIES = libspeech_espeak.la -else -noinst_LTLIBRARIES = libspeech_espeak.la -endif -libspeech_espeak_la_SOURCES = speak.c -libspeech_espeak_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -L$(top_builddir)/navit/support/espeak -lsupport_espeak -if !SUPPORT_WIN32CE -libspeech_espeak_la_LDFLAGS += -Wl,-lwinmm -endif - diff --git a/navit/speech/speech_dispatcher/Makefile.am b/navit/speech/speech_dispatcher/Makefile.am deleted file mode 100644 index a040740ef..000000000 --- a/navit/speech/speech_dispatcher/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=speech_speech_dispatcher -modulespeech_LTLIBRARIES = libspeech_speech_dispatcher.la -libspeech_speech_dispatcher_la_SOURCES = speech_speech_dispatcher.c -libspeech_speech_dispatcher_la_LIBADD = @SPEECHD_LIBS@ -libspeech_speech_dispatcher_la_LDFLAGS = -module -avoid-version diff --git a/navit/support/Makefile.am b/navit/support/Makefile.am deleted file mode 100644 index 9f63840a1..000000000 --- a/navit/support/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -SUBDIRS= -if SUPPORT_ESPEAK - SUBDIRS+=espeak -endif -if SUPPORT_EZXML - SUBDIRS+=ezxml -endif -if SUPPORT_GLIB - SUBDIRS+=glib -endif -if SUPPORT_WORDEXP - SUBDIRS+=wordexp -endif -if SUPPORT_WIN32 - SUBDIRS+=win32 -endif -if SUPPORT_ZLIB - SUBDIRS+=zlib -endif -if SUPPORT_LIBC - SUBDIRS+=libc -endif -if SUPPORT_LIBPNG - SUBDIRS+=libpng -endif -if SPEECH_ESPEAK - SUBDIRS+=espeak -endif -if !HAVE_SYSTEM_SHAPEFILELIB - SUBDIRS+=shapefile -endif -DIST_SUBDIRS=espeak ezxml glib wordexp win32 zlib libc libpng shapefile diff --git a/navit/support/espeak/Makefile.am b/navit/support/espeak/Makefile.am deleted file mode 100755 index 3de91b41f..000000000 --- a/navit/support/espeak/Makefile.am +++ /dev/null @@ -1,67 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -DMODULE=support_espeak -noinst_LTLIBRARIES = libsupport_espeak.la -libsupport_espeak_la_SOURCES = compiledict.c dictionary.c intonation.c \ - readclause.c setlengths.c numbers.c synth_mbrola.c \ - synthdata.c synthesize.c translate.c \ - tr_languages.c voices.c wavegen.c phonemelist.c klatt.c speak_init.c -libsupport_espeak_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ - -#bin_PROGRAMS = speak - -#speak_SOURCES = speak.c $(libsupport_espeak_la_SOURCES) - -nobase_pkgdata_DATA = espeak-data/af_dict espeak-data/ca_dict espeak-data/config espeak-data/cs_dict espeak-data/cy_dict -nobase_pkgdata_DATA += espeak-data/da_dict espeak-data/de_dict espeak-data/el_dict espeak-data/en_dict espeak-data/eo_dict -nobase_pkgdata_DATA += espeak-data/es_dict espeak-data/fi_dict espeak-data/fr_dict espeak-data/grc_dict espeak-data/hbs_dict -nobase_pkgdata_DATA += espeak-data/hi_dict espeak-data/hu_dict espeak-data/hy_dict espeak-data/id_dict espeak-data/is_dict -nobase_pkgdata_DATA += espeak-data/it_dict espeak-data/jbo_dict espeak-data/ku_dict espeak-data/la_dict espeak-data/lv_dict -nobase_pkgdata_DATA += espeak-data/mk_dict espeak-data/nl_dict espeak-data/no_dict -nobase_pkgdata_DATA += espeak-data/pap_dict espeak-data/phondata espeak-data/phondata-manifest espeak-data/phonindex -nobase_pkgdata_DATA += espeak-data/phontab espeak-data/pl_dict espeak-data/pt_dict espeak-data/ro_dict espeak-data/ru_dict -nobase_pkgdata_DATA += espeak-data/sk_dict espeak-data/sq_dict espeak-data/sv_dict espeak-data/sw_dict espeak-data/ta_dict -nobase_pkgdata_DATA += espeak-data/tr_dict espeak-data/vi_dict espeak-data/voices/!v/croak espeak-data/voices/!v/f1 -nobase_pkgdata_DATA += espeak-data/voices/!v/f2 espeak-data/voices/!v/f3 espeak-data/voices/!v/f4 espeak-data/voices/!v/fast -nobase_pkgdata_DATA += espeak-data/voices/!v/m1 espeak-data/voices/!v/m2 espeak-data/voices/!v/m3 espeak-data/voices/!v/m4 -nobase_pkgdata_DATA += espeak-data/voices/!v/m5 espeak-data/voices/!v/m6 espeak-data/voices/!v/m7 espeak-data/voices/!v/whisper -nobase_pkgdata_DATA += espeak-data/voices/af espeak-data/voices/bs espeak-data/voices/ca espeak-data/voices/cs -nobase_pkgdata_DATA += espeak-data/voices/cy espeak-data/voices/da espeak-data/voices/de espeak-data/voices/default -nobase_pkgdata_DATA += espeak-data/voices/el espeak-data/voices/en/en espeak-data/voices/en/en-n espeak-data/voices/en/en-rp -nobase_pkgdata_DATA += espeak-data/voices/en/en-sc espeak-data/voices/en/en-us espeak-data/voices/en/en-wi -nobase_pkgdata_DATA += espeak-data/voices/en/en-wm espeak-data/voices/eo espeak-data/voices/es espeak-data/voices/es-la -nobase_pkgdata_DATA += espeak-data/voices/fi espeak-data/voices/fr espeak-data/voices/fr-be espeak-data/voices/hi -nobase_pkgdata_DATA += espeak-data/voices/hr espeak-data/voices/hu espeak-data/voices/hy espeak-data/voices/hy-west -nobase_pkgdata_DATA += espeak-data/voices/id espeak-data/voices/is espeak-data/voices/it espeak-data/voices/ku -nobase_pkgdata_DATA += espeak-data/voices/la espeak-data/voices/lv -nobase_pkgdata_DATA += espeak-data/voices/mk espeak-data/voices/nl espeak-data/voices/no espeak-data/voices/pl -nobase_pkgdata_DATA += espeak-data/voices/pt espeak-data/voices/pt-pt espeak-data/voices/ro espeak-data/voices/ru -nobase_pkgdata_DATA += espeak-data/voices/sk espeak-data/voices/sq espeak-data/voices/sr espeak-data/voices/sv -nobase_pkgdata_DATA += espeak-data/voices/sw espeak-data/voices/ta espeak-data/voices/test/grc espeak-data/voices/test/jbo -nobase_pkgdata_DATA += espeak-data/voices/test/pap espeak-data/voices/tr espeak-data/voices/vi espeak-data/voices/zh -nobase_pkgdata_DATA += espeak-data/voices/zh-yue espeak-data/zh_dict espeak-data/zhy_dict - -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/af1_phtrans espeak-data/mbrola_ph/ca1_phtrans espeak-data/mbrola_ph/cr1_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/cs_phtrans espeak-data/mbrola_ph/de2_phtrans espeak-data/mbrola_ph/de4_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/de6_phtrans espeak-data/mbrola_ph/en1_phtrans espeak-data/mbrola_ph/es_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/fr1_phtrans espeak-data/mbrola_ph/gr2_phtrans espeak-data/mbrola_ph/grc-de6_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/hu1_phtrans espeak-data/mbrola_ph/id1_phtrans espeak-data/mbrola_ph/in1_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/it3_phtrans espeak-data/mbrola_ph/la1_phtrans espeak-data/mbrola_ph/nl_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/pl1_phtrans espeak-data/mbrola_ph/pt1_phtrans espeak-data/mbrola_ph/pt_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/ptbr4_phtrans espeak-data/mbrola_ph/ptbr_phtrans espeak-data/mbrola_ph/ro1_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/sv2_phtrans espeak-data/mbrola_ph/sv_phtrans espeak-data/mbrola_ph/us3_phtrans -#nobase_pkgdata_DATA += espeak-data/mbrola_ph/us_phtrans -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-af1 espeak-data/voices/mb/mb-af1-en -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-br1 espeak-data/voices/mb/mb-br3 espeak-data/voices/mb/mb-br4 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-cr1 espeak-data/voices/mb/mb-cz2 espeak-data/voices/mb/mb-de2 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-de4 espeak-data/voices/mb/mb-de4-en espeak-data/voices/mb/mb-de5 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-de5-en espeak-data/voices/mb/mb-de6 espeak-data/voices/mb/mb-de6-grc -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-de7 espeak-data/voices/mb/mb-en1 espeak-data/voices/mb/mb-es1 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-es2 espeak-data/voices/mb/mb-fr1 espeak-data/voices/mb/mb-fr1-en -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-fr4 espeak-data/voices/mb/mb-fr4-en espeak-data/voices/mb/mb-gr2 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-gr2-en espeak-data/voices/mb/mb-hu1 espeak-data/voices/mb/mb-hu1-en -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-id1 espeak-data/voices/mb/mb-it3 espeak-data/voices/mb/mb-it4 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-la1 espeak-data/voices/mb/mb-nl2 espeak-data/voices/mb/mb-nl2-en -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-pl1 espeak-data/voices/mb/mb-pl1-en espeak-data/voices/mb/mb-pt1 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-ro1 espeak-data/voices/mb/mb-ro1-en espeak-data/voices/mb/mb-sw1 -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-sw1-en espeak-data/voices/mb/mb-sw2 espeak-data/voices/mb/mb-sw2-en -#nobase_pkgdata_DATA += espeak-data/voices/mb/mb-us1 espeak-data/voices/mb/mb-us2 espeak-data/voices/mb/mb-us3 diff --git a/navit/support/ezxml/Makefile.am b/navit/support/ezxml/Makefile.am deleted file mode 100644 index 1b091a397..000000000 --- a/navit/support/ezxml/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_ezxml -DEZXML_NOMMAP -noinst_LTLIBRARIES = libsupport_ezxml.la -libsupport_ezxml_la_SOURCES = ezxml.c ezxml_init.c ezxml.h diff --git a/navit/support/gettext_intl/Makefile.in b/navit/support/gettext_intl/Makefile.in deleted file mode 100644 index 05f15329e..000000000 --- a/navit/support/gettext_intl/Makefile.in +++ /dev/null @@ -1,493 +0,0 @@ -# Makefile for directory with message catalog handling library of GNU gettext -# Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, -# USA. - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = .. -VPATH = $(srcdir) - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -transform = @program_transform_name@ -libdir = @libdir@ -includedir = @includedir@ -datadir = @datadir@ -localedir = $(datadir)/locale -gettextsrcdir = $(datadir)/gettext/intl -aliaspath = $(localedir) -subdir = intl - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) - -l = @INTL_LIBTOOL_SUFFIX_PREFIX@ - -AR = ar -CC = @CC@ -LIBTOOL = @LIBTOOL@ -RANLIB = @RANLIB@ -YACC = @INTLBISON@ -y -d -YFLAGS = --name-prefix=__gettext - -DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ --DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \ --DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ --Dset_relocation_prefix=libintl_set_relocation_prefix \ --Drelocate=libintl_relocate \ --DDEPENDS_ON_LIBICONV=1 @DEFS@ -CPPFLAGS = @CPPFLAGS@ -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -HEADERS = \ - gmo.h \ - gettextP.h \ - hash-string.h \ - loadinfo.h \ - plural-exp.h \ - eval-plural.h \ - localcharset.h \ - relocatable.h \ - xsize.h \ - printf-args.h printf-args.c \ - printf-parse.h wprintf-parse.h printf-parse.c \ - vasnprintf.h vasnwprintf.h vasnprintf.c \ - os2compat.h \ - libgnuintl.h.in -SOURCES = \ - bindtextdom.c \ - dcgettext.c \ - dgettext.c \ - gettext.c \ - finddomain.c \ - loadmsgcat.c \ - localealias.c \ - textdomain.c \ - l10nflist.c \ - explodename.c \ - dcigettext.c \ - dcngettext.c \ - dngettext.c \ - ngettext.c \ - plural.y \ - plural-exp.c \ - localcharset.c \ - relocatable.c \ - localename.c \ - log.c \ - printf.c \ - osdep.c \ - os2compat.c \ - intl-compat.c -OBJECTS = \ - bindtextdom.$lo \ - dcgettext.$lo \ - dgettext.$lo \ - gettext.$lo \ - finddomain.$lo \ - loadmsgcat.$lo \ - localealias.$lo \ - textdomain.$lo \ - l10nflist.$lo \ - explodename.$lo \ - dcigettext.$lo \ - dcngettext.$lo \ - dngettext.$lo \ - ngettext.$lo \ - plural.$lo \ - plural-exp.$lo \ - localcharset.$lo \ - relocatable.$lo \ - localename.$lo \ - log.$lo \ - printf.$lo \ - osdep.$lo \ - intl-compat.$lo -DISTFILES.common = Makefile.in \ -config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) -DISTFILES.generated = plural.c -DISTFILES.normal = VERSION -DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \ -libgnuintl.h_vms Makefile.vms \ -libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc -DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \ -COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h - -all: all-@USE_INCLUDED_LIBINTL@ -all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed -all-no: all-no-@BUILD_INCLUDED_LIBINTL@ -all-no-yes: libgnuintl.$la -all-no-no: - -libintl.a libgnuintl.a: $(OBJECTS) - rm -f $@ - $(AR) cru $@ $(OBJECTS) - $(RANLIB) $@ - -libintl.la libgnuintl.la: $(OBJECTS) - $(LIBTOOL) --mode=link \ - $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ - $(OBJECTS) @LTLIBICONV@ $(LIBS) -lc \ - -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ - -rpath $(libdir) \ - -no-undefined - -# Libtool's library version information for libintl. -# Before making a gettext release, the gettext maintainer must change this -# according to the libtool documentation, section "Library interface versions". -# Maintainers of other packages that include the intl directory must *not* -# change these values. -LTV_CURRENT=7 -LTV_REVISION=0 -LTV_AGE=4 - -.SUFFIXES: -.SUFFIXES: .c .y .o .lo .sin .sed - -.c.o: - $(COMPILE) $< - -.y.c: - $(YACC) $(YFLAGS) --output $@ $< - rm -f $*.h - -bindtextdom.lo: $(srcdir)/bindtextdom.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c -dcgettext.lo: $(srcdir)/dcgettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c -dgettext.lo: $(srcdir)/dgettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c -gettext.lo: $(srcdir)/gettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c -finddomain.lo: $(srcdir)/finddomain.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c -loadmsgcat.lo: $(srcdir)/loadmsgcat.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c -localealias.lo: $(srcdir)/localealias.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c -textdomain.lo: $(srcdir)/textdomain.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c -l10nflist.lo: $(srcdir)/l10nflist.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c -explodename.lo: $(srcdir)/explodename.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c -dcigettext.lo: $(srcdir)/dcigettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c -dcngettext.lo: $(srcdir)/dcngettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c -dngettext.lo: $(srcdir)/dngettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c -ngettext.lo: $(srcdir)/ngettext.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c -plural.lo: $(srcdir)/plural.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c -plural-exp.lo: $(srcdir)/plural-exp.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c -localcharset.lo: $(srcdir)/localcharset.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c -relocatable.lo: $(srcdir)/relocatable.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c -localename.lo: $(srcdir)/localename.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c -log.lo: $(srcdir)/log.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c -printf.lo: $(srcdir)/printf.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c -osdep.lo: $(srcdir)/osdep.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c -intl-compat.lo: $(srcdir)/intl-compat.c - $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c - -ref-add.sed: $(srcdir)/ref-add.sin - sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed - mv t-ref-add.sed ref-add.sed -ref-del.sed: $(srcdir)/ref-del.sin - sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed - mv t-ref-del.sed ref-del.sed - -INCLUDES = -I. -I$(srcdir) -I.. - -libgnuintl.h: $(srcdir)/libgnuintl.h.in - sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \ - -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \ - -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \ - -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \ - < $(srcdir)/libgnuintl.h.in > libgnuintl.h - -libintl.h: libgnuintl.h - cp libgnuintl.h libintl.h - -charset.alias: $(srcdir)/config.charset - $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ - mv t-$@ $@ - -check: all - -# We must not install the libintl.h/libintl.a files if we are on a -# system which has the GNU gettext() function in its C library or in a -# separate library. -# If you want to use the one which comes with this version of the -# package, you have to use `configure --with-included-gettext'. -install: install-exec install-data -install-exec: all - if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ - && test '@USE_INCLUDED_LIBINTL@' = yes; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ - $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ - $(LIBTOOL) --mode=install \ - $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ - if test "@RELOCATABLE@" = yes; then \ - dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \ - if test -n "$$dependencies"; then \ - rm -f $(DESTDIR)$(libdir)/libintl.la; \ - fi; \ - fi; \ - else \ - : ; \ - fi - if test "$(PACKAGE)" = "gettext-tools" \ - && test '@USE_INCLUDED_LIBINTL@' = no; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir); \ - $(LIBTOOL) --mode=install \ - $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \ - rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ - $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \ - $(LIBTOOL) --mode=uninstall \ - rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \ - else \ - : ; \ - fi - if test '@USE_INCLUDED_LIBINTL@' = yes; then \ - test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ - temp=$(DESTDIR)$(libdir)/t-charset.alias; \ - dest=$(DESTDIR)$(libdir)/charset.alias; \ - if test -f $(DESTDIR)$(libdir)/charset.alias; then \ - orig=$(DESTDIR)$(libdir)/charset.alias; \ - sed -f ref-add.sed $$orig > $$temp; \ - $(INSTALL_DATA) $$temp $$dest; \ - rm -f $$temp; \ - else \ - if test @GLIBC21@ = no; then \ - orig=charset.alias; \ - sed -f ref-add.sed $$orig > $$temp; \ - $(INSTALL_DATA) $$temp $$dest; \ - rm -f $$temp; \ - fi; \ - fi; \ - $(mkinstalldirs) $(DESTDIR)$(localedir); \ - test -f $(DESTDIR)$(localedir)/locale.alias \ - && orig=$(DESTDIR)$(localedir)/locale.alias \ - || orig=$(srcdir)/locale.alias; \ - temp=$(DESTDIR)$(localedir)/t-locale.alias; \ - dest=$(DESTDIR)$(localedir)/locale.alias; \ - sed -f ref-add.sed $$orig > $$temp; \ - $(INSTALL_DATA) $$temp $$dest; \ - rm -f $$temp; \ - else \ - : ; \ - fi -install-data: all - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ - $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ - dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \ - for file in $$dists; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ - dists="$(DISTFILES.generated)"; \ - for file in $$dists; do \ - if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ - $(INSTALL_DATA) $$dir/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - dists="$(DISTFILES.obsolete)"; \ - for file in $$dists; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi - -install-strip: install - -installdirs: - if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ - && test '@USE_INCLUDED_LIBINTL@' = yes; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ - else \ - : ; \ - fi - if test "$(PACKAGE)" = "gettext-tools" \ - && test '@USE_INCLUDED_LIBINTL@' = no; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir); \ - else \ - : ; \ - fi - if test '@USE_INCLUDED_LIBINTL@' = yes; then \ - test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ - $(mkinstalldirs) $(DESTDIR)$(localedir); \ - else \ - : ; \ - fi - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ - && test '@USE_INCLUDED_LIBINTL@' = yes; then \ - rm -f $(DESTDIR)$(includedir)/libintl.h; \ - $(LIBTOOL) --mode=uninstall \ - rm -f $(DESTDIR)$(libdir)/libintl.$la; \ - else \ - : ; \ - fi - if test "$(PACKAGE)" = "gettext-tools" \ - && test '@USE_INCLUDED_LIBINTL@' = no; then \ - rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ - else \ - : ; \ - fi - if test '@USE_INCLUDED_LIBINTL@' = yes; then \ - if test -f $(DESTDIR)$(libdir)/charset.alias; then \ - temp=$(DESTDIR)$(libdir)/t-charset.alias; \ - dest=$(DESTDIR)$(libdir)/charset.alias; \ - sed -f ref-del.sed $$dest > $$temp; \ - if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ - rm -f $$dest; \ - else \ - $(INSTALL_DATA) $$temp $$dest; \ - fi; \ - rm -f $$temp; \ - fi; \ - if test -f $(DESTDIR)$(localedir)/locale.alias; then \ - temp=$(DESTDIR)$(localedir)/t-locale.alias; \ - dest=$(DESTDIR)$(localedir)/locale.alias; \ - sed -f ref-del.sed $$dest > $$temp; \ - if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ - rm -f $$dest; \ - else \ - $(INSTALL_DATA) $$temp $$dest; \ - fi; \ - rm -f $$temp; \ - fi; \ - else \ - : ; \ - fi - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi - -info dvi ps pdf html: - -$(OBJECTS): ../config.h libgnuintl.h -bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h -dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h -explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h -dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h -dcigettext.$lo: $(srcdir)/eval-plural.h -localcharset.$lo: $(srcdir)/localcharset.h -localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h -printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c - -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) - here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) - -ctags: CTAGS - -CTAGS: $(HEADERS) $(SOURCES) - here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES) - -id: ID - -ID: $(HEADERS) $(SOURCES) - here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) - - -mostlyclean: - rm -f *.a *.la *.o *.obj *.lo core core.* - rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed - rm -f -r .libs _libs - -clean: mostlyclean - -distclean: clean - rm -f Makefile ID TAGS - if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \ - rm -f ChangeLog.inst $(DISTFILES.normal); \ - else \ - : ; \ - fi - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - - -# GNU gettext needs not contain the file `VERSION' but contains some -# other files which should not be distributed in other packages. -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: Makefile - if test "$(PACKAGE)" = "gettext-tools"; then \ - : ; \ - else \ - if test "$(PACKAGE)" = "gettext-runtime"; then \ - additional="$(DISTFILES.gettext)"; \ - else \ - additional="$(DISTFILES.normal)"; \ - fi; \ - $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ - for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ - if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ - cp -p $$dir/$$file $(distdir); \ - done; \ - fi - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status -# This would be more efficient, but doesn't work any more with autoconf-2.57, -# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used. -# cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/navit/support/glib/Makefile.am b/navit/support/glib/Makefile.am deleted file mode 100644 index c268053f1..000000000 --- a/navit/support/glib/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -I$(top_srcdir)/navit/support -DMODULE=support_glib -noinst_LTLIBRARIES = libsupport_glib.la -libsupport_glib_la_SOURCES = fake.c galiasdef.c gatomic.c gerror.c \ - ghash.c glib_init.c glist.c gmem.c gmessages.c gprimes.c gprintf.c gslice.c \ - gslist.c gstrfuncs.c gstring.c gutils.c gutf8.c \ - fake.h galias.h gerror.h ghash.h glib.h glibconfig.h glibintl.h glist.h \ - gmacros.h gmem.h gmessages.h gprintf.h gprintfint.h gquark.h gslice.h \ - gslist.h gstrfuncs.h gthreadprivate.h gtypes.h diff --git a/navit/support/libc/Makefile.am b/navit/support/libc/Makefile.am deleted file mode 100644 index fae600f8f..000000000 --- a/navit/support/libc/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_libc -noinst_LTLIBRARIES = libsupport_libc.la -libsupport_libc_la_SOURCES = libc.c libc_init.c -if SUPPORT_WIN32CE -noinst_LIBRARIES = libc.a -libc_a_SOURCES = -endif diff --git a/navit/support/libpng/Makefile.am b/navit/support/libpng/Makefile.am deleted file mode 100644 index e8ed41c1e..000000000 --- a/navit/support/libpng/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit @ZLIB_CFLAGS@ -DMODULE=support_libpng -noinst_LTLIBRARIES = libsupport_libpng.la -libsupport_libpng_la_SOURCES = png.c pngerror.c pngget.c pngmem.c pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c libpng_init.c - -#bin_PROGRAMS = pngm2pnm -#pngm2pnm_LDADD=libsupport_libpng.la @ZLIB_LIBS@ - diff --git a/navit/support/shapefile/Makefile.am b/navit/support/shapefile/Makefile.am deleted file mode 100644 index 3f5115ca1..000000000 --- a/navit/support/shapefile/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_shapefile -noinst_LTLIBRARIES = libsupport_shapefile.la -libsupport_shapefile_la_SOURCES = dbfopen.c shpopen.c shptree.c shapefil.h diff --git a/navit/support/win32/Makefile.am b/navit/support/win32/Makefile.am deleted file mode 100644 index aee4350cb..000000000 --- a/navit/support/win32/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_win32 -noinst_LTLIBRARIES = libsupport_win32.la -libsupport_win32_la_SOURCES = mmap.c win32_init.c sys/mman.h ConvertUTF.c ConvertUTF.h serial_io.c addwinsock.c - diff --git a/navit/support/wordexp/Makefile.am b/navit/support/wordexp/Makefile.am deleted file mode 100644 index 44d5ad272..000000000 --- a/navit/support/wordexp/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_wordexp -noinst_LTLIBRARIES = libsupport_wordexp.la -libsupport_wordexp_la_SOURCES = wordexp.c wordexp_init.c wordexp.h glob.c glob.h diff --git a/navit/support/zlib/Makefile.am b/navit/support/zlib/Makefile.am deleted file mode 100644 index a49fe3ca7..000000000 --- a/navit/support/zlib/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=support_zlib -noinst_LTLIBRARIES = libsupport_zlib.la -libsupport_zlib_la_SOURCES = adler32.c crc32.c crc32.h infback.c inffast.c inffast.h inffixed.h inflate.c inflate.h inftrees.c inftrees.h zconf.h zlib.h zutil.c zutil.h zlib_init.c diff --git a/navit/tools/gpx2navit_txt/Makefile.am b/navit/tools/gpx2navit_txt/Makefile.am deleted file mode 100644 index 05f1ce1a0..000000000 --- a/navit/tools/gpx2navit_txt/Makefile.am +++ /dev/null @@ -1,27 +0,0 @@ -SUBDIRS = src man - -EXTRA_DIST = gps2shp pinatest2.gpx debian develop - -debian-dist: - dpkg-buildpackage -rfakeroot -d -tc -us -uc - -CLEANFILES = \ - pinatest2_wpt.shx \ - pinatest2_wpt.shp \ - pinatest2_wpt.dbf \ - pinatest2_trk.shx \ - pinatest2_trk.shp \ - pinatest2_trk.dbf \ - pinatest2_rte.shx \ - pinatest2_rte.shp \ - pinatest2_rte.dbf \ - pinatest2_meta.txt - -GPX2SHP=src/gpx2shp -check: $(GPX2SHP) - $(GPX2SHP) || true - $(GPX2SHP) --version - $(GPX2SHP) -s pinatest2.gpx - $(GPX2SHP) -e pinatest2.gpx - $(GPX2SHP) -p pinatest2.gpx - $(GPX2SHP) -v pinatest2.gpx > /dev/null diff --git a/navit/tools/gpx2navit_txt/man/Makefile.am b/navit/tools/gpx2navit_txt/man/Makefile.am deleted file mode 100644 index 71f0f055d..000000000 --- a/navit/tools/gpx2navit_txt/man/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -man_MANS = gpx2navit_txt.1 -EXTRA_DIST = $(man_MANS) diff --git a/navit/tools/gpx2navit_txt/src/Makefile.am b/navit/tools/gpx2navit_txt/src/Makefile.am deleted file mode 100644 index 5cce6fa3c..000000000 --- a/navit/tools/gpx2navit_txt/src/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -bin_PROGRAMS = gpx2navit_txt - -gpx2navit_txt_SOURCES = \ - emess.h \ - geod_for.c \ - geod_inv.c \ - geod_set.c \ - geodesic.h \ - gpx2navit_txt.h \ - main.c \ - misc.c \ - utils.c \ - parser.c \ - elementControl.c\ - setwpt.c \ - setpath.c \ - setmeta.c \ - errorcode.h - -INCLUDES= -I$(srcdir) - -AM_CFLAGS = -g - -debian-dist: - dpkg-buildpackage -rfakeroot -d -tc -us -uc - diff --git a/navit/vehicle/Makefile.am b/navit/vehicle/Makefile.am deleted file mode 100644 index 80fc84db7..000000000 --- a/navit/vehicle/Makefile.am +++ /dev/null @@ -1,34 +0,0 @@ -SUBDIRS= -if VEHICLE_MAEMO - SUBDIRS += maemo -endif -if VEHICLE_ANDROID - SUBDIRS += android -endif -if VEHICLE_IPHONE - SUBDIRS += iphone -endif -if VEHICLE_DEMO - SUBDIRS += demo -endif -if VEHICLE_FILE - SUBDIRS += file -endif -if VEHICLE_GPSD - SUBDIRS += gpsd -endif -if VEHICLE_GPSD_DBUS - SUBDIRS += gpsd_dbus -endif -if VEHICLE_GYPSY - SUBDIRS += gypsy -endif -if VEHICLE_NULL - SUBDIRS += null -endif -if VEHICLE_WINCE - SUBDIRS += wince -endif -if VEHICLE_WEBOS - SUBDIRS += webos -endif diff --git a/navit/vehicle/android/Makefile.am b/navit/vehicle/android/Makefile.am deleted file mode 100644 index 7f7799acb..000000000 --- a/navit/vehicle/android/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_android -modulevehicle_LTLIBRARIES = libvehicle_android.la -libvehicle_android_la_SOURCES = vehicle_android.c -libvehicle_android_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/demo/Makefile.am b/navit/vehicle/demo/Makefile.am deleted file mode 100644 index 5662119d4..000000000 --- a/navit/vehicle/demo/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_demo -if PLUGINS -modulevehicle_LTLIBRARIES = libvehicle_demo.la -else -noinst_LTLIBRARIES = libvehicle_demo.la -endif -libvehicle_demo_la_SOURCES = vehicle_demo.c -libvehicle_demo_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/file/Makefile.am b/navit/vehicle/file/Makefile.am deleted file mode 100644 index ce3a45b65..000000000 --- a/navit/vehicle/file/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -modulevehicle_LTLIBRARIES = libvehicle_file.la libvehicle_pipe.la libvehicle_socket.la libvehicle_serial.la -libvehicle_file_la_CFLAGS=-DMODULE=vehicle_file -libvehicle_file_la_SOURCES = vehicle_file.c -libvehicle_file_la_LDFLAGS = -module -avoid-version @NAVIT_SOCKET_LDFLAGS@ @NAVIT_MODULE_LDFLAGS@ -libvehicle_pipe_la_CFLAGS=-DMODULE=vehicle_pipe -libvehicle_pipe_la_SOURCES = vehicle_pipe.c -libvehicle_pipe_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -libvehicle_socket_la_CFLAGS=-DMODULE=vehicle_socket -libvehicle_socket_la_SOURCES = vehicle_socket.c -libvehicle_socket_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -libvehicle_serial_la_CFLAGS=-DMODULE=vehicle_serial -libvehicle_serial_la_SOURCES = vehicle_serial.c -libvehicle_serial_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/gpsd/Makefile.am b/navit/vehicle/gpsd/Makefile.am deleted file mode 100644 index 1c47ccc56..000000000 --- a/navit/vehicle/gpsd/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @GPSBT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_gpsd -modulevehicle_LTLIBRARIES = libvehicle_gpsd.la -libvehicle_gpsd_la_SOURCES = vehicle_gpsd.c -libvehicle_gpsd_la_LIBADD = @GPSD_LIBS@ @GPSBT_LIBS@ -libvehicle_gpsd_la_LDFLAGS = -module -avoid-version diff --git a/navit/vehicle/gpsd_dbus/Makefile.am b/navit/vehicle/gpsd_dbus/Makefile.am deleted file mode 100644 index 4685d2ea8..000000000 --- a/navit/vehicle/gpsd_dbus/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @DBUS_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_gpsd_dbus -modulevehicle_LTLIBRARIES = libvehicle_gpsd_dbus.la -libvehicle_gpsd_dbus_la_SOURCES = vehicle_gpsd_dbus.c -libvehicle_gpsd_dbus_la_LIBADD = @DBUS_LIBS@ -libvehicle_gpsd_dbus_la_LDFLAGS = -module -avoid-version diff --git a/navit/vehicle/gypsy/Makefile.am b/navit/vehicle/gypsy/Makefile.am deleted file mode 100644 index 1e997f23c..000000000 --- a/navit/vehicle/gypsy/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @DBUS_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_gypsy -modulevehicle_LTLIBRARIES = libvehicle_gypsy.la -libvehicle_gypsy_la_SOURCES = vehicle_gypsy.c -libvehicle_gypsy_la_LIBADD = @GYPSY_LIBS@ -libvehicle_gypsy_la_LDFLAGS = -module -avoid-version diff --git a/navit/vehicle/iphone/Makefile.am b/navit/vehicle/iphone/Makefile.am deleted file mode 100644 index 7abb872f4..000000000 --- a/navit/vehicle/iphone/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_iphone -modulevehicle_LTLIBRARIES = libvehicle_iphone.la -libvehicle_iphone_la_SOURCES = vehicle_iphone.c corelocation.m -libvehicle_iphone_la_LDFLAGS = -module -Wl,-framework,CoreLocation -libvehicle_iphone_la_LIBADD = @IPHONE_LIBS@ diff --git a/navit/vehicle/maemo/Makefile.am b/navit/vehicle/maemo/Makefile.am deleted file mode 100644 index d82bdb699..000000000 --- a/navit/vehicle/maemo/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @LIBLOCATION_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_maemo -modulevehicle_LTLIBRARIES = libvehicle_maemo.la -libvehicle_maemo_la_SOURCES = vehicle_maemo.c -libvehicle_maemo_la_LIBADD = @LIBLOCATION_LIBS@ -libvehicle_maemo_la_LDFLAGS = -module -avoid-version diff --git a/navit/vehicle/null/Makefile.am b/navit/vehicle/null/Makefile.am deleted file mode 100644 index 83387eb27..000000000 --- a/navit/vehicle/null/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_null -if PLUGINS - modulevehicle_LTLIBRARIES = libvehicle_null.la -else - noinst_LTLIBRARIES = libvehicle_null.la -endif -libvehicle_null_la_SOURCES = vehicle_null.c -libvehicle_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/webos/Makefile.am b/navit/vehicle/webos/Makefile.am deleted file mode 100644 index 15f8767fc..000000000 --- a/navit/vehicle/webos/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ @SDL_CFLAGS@ @LIBPDL_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_webos -modulevehicle_LTLIBRARIES = libvehicle_webos.la -libvehicle_webos_la_SOURCES = vehicle_webos.c bluetooth.c cJSON.c -libvehicle_webos_la_LDFLAGS = @SDL_LIBS@ @LIBPDL_LIBS@ -module -avoid-version diff --git a/navit/vehicle/wince/Makefile.am b/navit/vehicle/wince/Makefile.am deleted file mode 100644 index af6fcb19d..000000000 --- a/navit/vehicle/wince/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_wince -if PLUGINS -modulevehicle_LTLIBRARIES = libvehicle_wince.la -else -noinst_LTLIBRARIES = libvehicle_wince.la -endif -libvehicle_wince_la_SOURCES = vehicle_wince.c -libvehicle_wince_la_LDFLAGS = -module -avoid-version diff --git a/navit/xpm/Makefile.am b/navit/xpm/Makefile.am deleted file mode 100644 index 2ba0d3a5c..000000000 --- a/navit/xpm/Makefile.am +++ /dev/null @@ -1,340 +0,0 @@ -include $(top_srcdir)/Makefile.inc - -image_DATA = cemetery.xpm -image_DATA += dumping_station.xpm -image_DATA += highway_exit.xpm -image_DATA += hunting_stand.xpm -image_DATA += level_crossing.xpm -image_DATA += tower.xpm -image_DATA += trailerpark.xpm -image_DATA += public_office.xpm - - -## Obsolete. Should be removed eventually... - -image_DATA += biergarten.xpm -image_DATA += bus_halt.xpm -image_DATA += car_dealer.xpm -image_DATA += castle.xpm -image_DATA += library.xpm -image_DATA += memorial.xpm -image_DATA += picnic.xpm -image_DATA += potable_water.xpm -image_DATA += restroom.xpm -image_DATA += sport.xpm -image_DATA += menu.xpm -image_DATA += toggle_fullscreen.xpm - -## Obsolete end - - -image_DATA += flag_bk_tr.xpm -image_DATA += flag_bk_wh.xpm -image_DATA += flag_bl_wh.xpm -image_DATA += flag_wh_bk.xpm - -image_DATA += gc_tradi.xpm -image_DATA += gc_multi.xpm -image_DATA += gc_mystery.xpm -image_DATA += gc_event.xpm -image_DATA += gc_reference.xpm -image_DATA += gc_webcam.xpm -image_DATA += gc_question.xpm -image_DATA += gc_stages.xpm - -image_DATA += nav_left_1.xpm -image_DATA += nav_left_2.xpm -image_DATA += nav_right_1.xpm -image_DATA += nav_right_2.xpm -image_DATA += nav_straight.xpm -image_DATA += nav_straight_32.xpm -image_DATA += nav_left_1_32.xpm -image_DATA += nav_left_2_32.xpm -image_DATA += nav_right_1_32.xpm -image_DATA += nav_right_2_32.xpm - -svgs = gui_about.svg -svgs += gui_actions.svg -svgs += gui_active.svg -svgs += gui_bookmark.svg -svgs += gui_formerdests.svg -svgs += gui_display.svg -svgs += gui_help.svg -svgs += gui_home.svg -svgs += gui_inactive.svg -svgs += gui_map.svg -svgs += gui_maps.svg -svgs += gui_rules.svg -svgs += gui_settings.svg -svgs += gui_sound.svg -svgs += gui_sound_off.svg -svgs += gui_tools.svg -svgs += gui_fullscreen.svg -svgs += gui_leave_fullscreen.svg -svgs += gui_quit.svg -svgs += gui_stop.svg -svgs += gui_town.svg -svgs += gui_vehicle.svg -svgs += gui_vehicle_pedestrian.svg -svgs += gui_zoom_in.svg -svgs += gui_zoom_out.svg -svgs += zoom_in.svg -svgs += zoom_out.svg -svgs += gui_select_street.svg -svgs += gui_select_town.svg -svgs += gui_select_country.svg -svgs += gui_arrow_left.svg -svgs += gui_arrow_right.svg -svgs += gui_arrow_up.svg -svgs += gui_arrow_down.svg -svgs += gui_menu.svg -svgs += gui_strength_0.svg -svgs += gui_strength_1.svg -svgs += gui_strength_2.svg -svgs += gui_strength_3.svg -svgs += gui_strength_4.svg -svgs += gui_strength_5.svg -svgs += gui_minus.svg -svgs += gui_plus.svg -svgs += gui_log.svg -svgs += gui_search.svg -svgs += menu.svg -svgs += toggle_fullscreen.svg - -svgs += airport.svg -svgs += atm.svg -svgs += attraction.svg -svgs += bahai.svg -svgs += bank.svg -svgs += bar.svg -svgs += beer.svg -svgs += bench.svg -svgs += bicycle_parking.svg -svgs += bicycle_rental.svg -svgs += bicycle_shop.svg -svgs += biergarten.svg -svgs += boat_ramp.svg -svgs += boundary_stone.svg -svgs += buddhist.svg -svgs += bus.svg -svgs += bus_stop.svg -svgs += cafe.svg -svgs += camping.svg -svgs += car_dealer.svg -svgs += car_rent.svg -svgs += car_sharing.svg -svgs += casino.svg -svgs += castle.svg -svgs += church.svg -svgs += cinema.svg -svgs += cursor.svg -svgs += cursor225.svg -svgs += cursor450.svg -svgs += cursor675.svg -svgs += cursor_still.svg -svgs += dam.svg -svgs += danger.svg -svgs += daymark.svg -svgs += drinking_water.svg -svgs += emergency.svg -svgs += exit.svg -svgs += fastfood.svg -svgs += firebrigade.svg -svgs += fountain.svg -svgs += fuel.svg -svgs += golf.svg -svgs += heliport.svg -svgs += hindu.svg -svgs += hospital.svg -svgs += hotel.svg -svgs += information.svg -svgs += islamic.svg -svgs += jain.svg -svgs += jewish.svg -svgs += justice.svg -svgs += library.svg -svgs += mark.svg -svgs += memorial.svg -svgs += menu.svg -svgs += military.svg -svgs += mini_roundabout.svg -svgs += museum.svg -svgs += pagan.svg -svgs += parking.svg -svgs += pastafarian.svg -svgs += peak.svg -svgs += pharmacy.svg -svgs += picnic.svg -svgs += police.svg -svgs += post.svg -svgs += rail_station.svg -svgs += repair_service.svg -svgs += resort.svg -svgs += restaurant.svg -svgs += ruins.svg -svgs += school.svg -svgs += shelter.svg -svgs += shinto.svg -svgs += shop_apparel.svg -svgs += shop_computer.svg -svgs += shop_department.svg -svgs += shop_grocery.svg -svgs += shopping.svg -svgs += sikh.svg -svgs += skiing.svg -svgs += sport.svg -svgs += stadium.svg -svgs += status_calculating_bk.svg -svgs += status_calculating_wh.svg -svgs += status_no_destination_bk.svg -svgs += status_no_destination_wh.svg -svgs += status_no_route_bk.svg -svgs += status_no_route_wh.svg -svgs += status_position_wait_bk.svg -svgs += status_position_wait_wh.svg -svgs += status_recalculating_bk.svg -svgs += status_recalculating_wh.svg -svgs += status_routing_bk.svg -svgs += status_routing_wh.svg -svgs += swimming.svg -svgs += taoist.svg -svgs += taxi.svg -svgs += tec_common.svg -svgs += telephone.svg -svgs += theater.svg -svgs += toggle_fullscreen.svg -svgs += toilets.svg -svgs += townhall.svg -svgs += traffic_signals.svg -svgs += unknown.svg -svgs += viewpoint.svg -svgs += wifi.svg -svgs += worship.svg -svgs += zoo.svg -svgs += zoom_in.svg -svgs += zoom_out.svg - - -nav_svgs = nav_left_1_bk.svg nav_left_1_wh.svg nav_left_2_bk.svg nav_left_2_wh.svg nav_left_3_bk.svg nav_left_3_wh.svg -nav_svgs += nav_right_1_bk.svg nav_right_1_wh.svg nav_right_2_bk.svg nav_right_2_wh.svg nav_right_3_bk.svg nav_right_3_wh.svg -nav_svgs += nav_roundabout_l1_bk.svg nav_roundabout_l1_wh.svg nav_roundabout_l2_bk.svg nav_roundabout_l2_wh.svg -nav_svgs += nav_roundabout_l3_bk.svg nav_roundabout_l3_wh.svg nav_roundabout_l4_bk.svg nav_roundabout_l4_wh.svg -nav_svgs += nav_roundabout_l5_bk.svg nav_roundabout_l5_wh.svg nav_roundabout_l6_bk.svg nav_roundabout_l6_wh.svg -nav_svgs += nav_roundabout_l7_bk.svg nav_roundabout_l7_wh.svg nav_roundabout_l8_bk.svg nav_roundabout_l8_wh.svg -nav_svgs += nav_roundabout_r1_bk.svg nav_roundabout_r1_wh.svg nav_roundabout_r2_bk.svg nav_roundabout_r2_wh.svg -nav_svgs += nav_roundabout_r3_bk.svg nav_roundabout_r3_wh.svg nav_roundabout_r4_bk.svg nav_roundabout_r4_wh.svg -nav_svgs += nav_roundabout_r5_bk.svg nav_roundabout_r5_wh.svg nav_roundabout_r6_bk.svg nav_roundabout_r6_wh.svg -nav_svgs += nav_roundabout_r7_bk.svg nav_roundabout_r7_wh.svg nav_roundabout_r8_bk.svg nav_roundabout_r8_wh.svg -nav_svgs += nav_straight_bk.svg nav_straight_wh.svg nav_turnaround_left_bk.svg nav_turnaround_left_wh.svg -nav_svgs += nav_turnaround_right_bk.svg nav_turnaround_right_wh.svg nav_destination_bk.svg nav_destination_wh.svg - -flag_svgs = country_.svgz country_AD.svgz country_AE.svgz country_AF.svgz country_AG.svgz country_AI.svgz country_AL.svgz country_AM.svgz -flag_svgs += country_AN.svgz country_AO.svgz country_AQ.svgz country_AR.svgz country_AS.svgz country_AT.svgz country_AU.svgz country_AW.svgz -flag_svgs += country_AX.svgz country_AZ.svgz country_BA.svgz country_BB.svgz country_BD.svgz country_BE.svgz country_BF.svgz -flag_svgs += country_BG.svgz country_BH.svgz country_BI.svgz country_BJ.svgz country_BL.svgz country_BM.svgz country_BN.svgz -flag_svgs += country_BO.svgz country_BR.svgz country_BS.svgz country_BT.svgz country_BV.svgz country_BW.svgz country_BY.svgz -flag_svgs += country_BZ.svgz country_CA.svgz country_CC.svgz country_CD.svgz country_CF.svgz country_CG.svgz country_CH.svgz -flag_svgs += country_CI.svgz country_CK.svgz country_CL.svgz country_CM.svgz country_CN.svgz country_CO.svgz country_CR.svgz -flag_svgs += country_CU.svgz country_CV.svgz country_CX.svgz country_CY.svgz country_CZ.svgz country_DE.svgz country_DJ.svgz -flag_svgs += country_DK.svgz country_DM.svgz country_DO.svgz country_DZ.svgz country_EC.svgz country_EE.svgz country_EG.svgz -flag_svgs += country_EH.svgz country_ER.svgz country_ES.svgz country_ET.svgz country_FI.svgz country_FJ.svgz country_FK.svgz -flag_svgs += country_FM.svgz country_FO.svgz country_FR.svgz country_GA.svgz country_GB.svgz country_GD.svgz country_GE.svgz -flag_svgs += country_GF.svgz country_GG.svgz country_GH.svgz country_GI.svgz country_GL.svgz country_GM.svgz country_GN.svgz -flag_svgs += country_GP.svgz country_GQ.svgz country_GR.svgz country_GS.svgz country_GT.svgz country_GU.svgz country_GW.svgz -flag_svgs += country_GY.svgz country_HK.svgz country_HM.svgz country_HN.svgz country_HR.svgz country_HT.svgz country_HU.svgz -flag_svgs += country_ID.svgz country_IE.svgz country_IL.svgz country_IM.svgz country_IN.svgz country_IO.svgz country_IQ.svgz -flag_svgs += country_IR.svgz country_IS.svgz country_IT.svgz country_JE.svgz country_JM.svgz country_JO.svgz country_JP.svgz -flag_svgs += country_KE.svgz country_KG.svgz country_KH.svgz country_KI.svgz country_KM.svgz country_KN.svgz country_KP.svgz -flag_svgs += country_KR.svgz country_KW.svgz country_KY.svgz country_KZ.svgz country_LA.svgz country_LB.svgz country_LC.svgz -flag_svgs += country_LI.svgz country_LK.svgz country_LR.svgz country_LS.svgz country_LT.svgz country_LU.svgz country_LV.svgz -flag_svgs += country_LY.svgz country_MA.svgz country_MC.svgz country_MD.svgz country_ME.svgz country_MF.svgz country_MG.svgz -flag_svgs += country_MH.svgz country_MK.svgz country_ML.svgz country_MM.svgz country_MN.svgz country_MO.svgz country_MP.svgz -flag_svgs += country_MQ.svgz country_MR.svgz country_MS.svgz country_MT.svgz country_MU.svgz country_MV.svgz country_MW.svgz -flag_svgs += country_MX.svgz country_MY.svgz country_MZ.svgz country_NA.svgz country_NC.svgz country_NE.svgz country_NF.svgz -flag_svgs += country_NG.svgz country_NI.svgz country_NL.svgz country_NO.svgz country_NP.svgz country_NR.svgz country_NU.svgz -flag_svgs += country_NZ.svgz country_OM.svgz country_PA.svgz country_PE.svgz country_PF.svgz country_PG.svgz country_PH.svgz -flag_svgs += country_PK.svgz country_PL.svgz country_PM.svgz country_PN.svgz country_PR.svgz country_PS.svgz country_PT.svgz -flag_svgs += country_PW.svgz country_PY.svgz country_QA.svgz country_RE.svgz country_RO.svgz country_RS.svgz country_RU.svgz -flag_svgs += country_RW.svgz country_SA.svgz country_SB.svgz country_SC.svgz country_SD.svgz country_SE.svgz country_SG.svgz -flag_svgs += country_SH.svgz country_SI.svgz country_SJ.svgz country_SK.svgz country_SL.svgz country_SM.svgz country_SN.svgz -flag_svgs += country_SO.svgz country_SR.svgz country_ST.svgz country_SV.svgz country_SY.svgz country_SZ.svgz country_TC.svgz -flag_svgs += country_TD.svgz country_TF.svgz country_TG.svgz country_TH.svgz country_TJ.svgz country_TK.svgz country_TL.svgz -flag_svgs += country_TM.svgz country_TN.svgz country_TO.svgz country_TR.svgz country_TT.svgz country_TV.svgz country_TW.svgz -flag_svgs += country_TZ.svgz country_UA.svgz country_UG.svgz country_UM.svgz country_US.svgz country_UY.svgz country_UZ.svgz -flag_svgs += country_VA.svgz country_VC.svgz country_VE.svgz country_VG.svgz country_VI.svgz country_VN.svgz country_VU.svgz -flag_svgs += country_WF.svgz country_WS.svgz country_YE.svgz country_YT.svgz country_ZA.svgz country_ZM.svgz country_ZW.svgz - -if USE_SVG - image_DATA += $(svgs) $(nav_svgs) $(flag_svgs) -endif - -if USE_SVG2PNG -# Implicit rules for generating the PNG files. This only generates the -# standard size; for additional sizes see below. -%.png: $(srcdir)/%.svg - SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) $(srcdir)/navit_svg2png "@SVG2PNG@" "$@" -%.png: $(srcdir)/%.svgz - SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) $(srcdir)/navit_svg2png "@SVG2PNG@" "$@" - -pngs = $(addsuffix .png,$(basename $(svgs))) -xsize = $(word 1,$(subst x, ,$(scale))) -ysize = $(word $(words $(scale)),$(subst x, ,$(scale))) -comma =, - -# template to generate scaling rules for the various PNG sizes -define scaling_rule_template -%_$(1)_$(1).png: $(srcdir)/%.$(2) - SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) $(srcdir)/navit_svg2png "@SVG2PNG@" "$$@" -endef - -# template to generate scaling rules for the default PNG size -define scaling_rule_template_def -$(basename $(1)).png: $(srcdir)/$(1) - SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) $(srcdir)/navit_svg2png "@SVG2PNG@" "$$@" "$(2)" "$(2)" -endef - - -# png images of the user interface and other, sizes e.g. "8,16,32,48,96" -if USE_SVG2PNG_SCALES -pngs += $(foreach scale, $(subst $(comma), ,@SVG2PNG_SCALES@), $(addsuffix _$(xsize)_$(ysize).png,$(basename $(svgs)))) -# create rules from template -$(foreach extension,svg svgz, $(foreach size, $(subst $(comma), ,@SVG2PNG_SCALES@),$(eval $(call scaling_rule_template,$(size),$(extension))))) -endif - -# png state flags -if USE_SVG2PNG_SCALES_FLAG -svg2png_scales_flag = $(subst $(comma), ,@SVG2PNG_SCALES_FLAG@) -pngs += $(addsuffix .png,$(basename $(flag_svgs))) -pngs += $(foreach scale, $(wordlist 2,100,$(svg2png_scales_flag)), $(addsuffix _$(xsize)_$(ysize).png,$(basename $(flag_svgs)))) -# create rules from templates -$(foreach extension,svg svgz, $(foreach size, $(wordlist 2,100,$(svg2png_scales_flag)),$(eval $(call scaling_rule_template,$(size),$(extension))))) -$(foreach img,$(flag_svgs), $(foreach size, $(firstword $(svg2png_scales_flag)),$(eval $(call scaling_rule_template_def,$(img),$(size))))) -endif - -# png symbols for navigation -if USE_SVG2PNG_SCALES_NAV -pngs += $(foreach scale, $(subst $(comma), ,@SVG2PNG_SCALES_NAV@), $(addsuffix _$(xsize)_$(ysize).png,$(basename $(nav_svgs)))) -# create rules from template -$(foreach extension,svg svgz, $(foreach size, $(subst $(comma), ,@SVG2PNG_SCALES_NAV@),$(eval $(call scaling_rule_template,$(size),$(extension))))) -endif - -image_DATA += $(pngs) -endif - -if !SUPPORT_WIN32 - DESKTOPFILEdir=$(datadir)/applications - DESKTOPFILE_DATA = desktop_icons/navit.desktop - - ICON128dir=$(datadir)/icons/hicolor/128x128/apps - ICON128_DATA = desktop_icons/128x128/navit.png - - ICON22dir=$(datadir)/icons/hicolor/22x22/apps - ICON22_DATA = desktop_icons/22x22/navit.png -endif - -EXTRA_DIST = $(image_DATA) $(DESKTOPFILE_DATA) $(ICON128_DATA) $(ICON22_DATA) navit_svg2png - -if USE_SVG2PNG -clean: - rm -f $(pngs) -endif diff --git a/po/Makefile.am b/po/Makefile.am deleted file mode 100644 index 7da7f1135..000000000 --- a/po/Makefile.am +++ /dev/null @@ -1,114 +0,0 @@ -CATALOGS = @MOFILES@ - -CLEANFILES = $(CATALOGS) navit.pot - -# keep this sorted -EXTRA_DIST = @POIFILES@ \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitAndroidOverlay.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitDialogs.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitGraphics.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/Navit.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitMapDownloader.java \ - $(top_srcdir)/navit/android/res/values/strings.xml - -POTFILES = \ - $(top_srcdir)/navit/main.c \ - $(top_srcdir)/navit/navigation.c \ - $(top_srcdir)/navit/navit.c \ - $(top_srcdir)/navit/popup.c \ - $(top_srcdir)/navit/country.c \ - $(top_srcdir)/navit/gui/gtk/destination.c \ - $(top_srcdir)/navit/gui/gtk/gui_gtk_action.c \ - $(top_srcdir)/navit/gui/gtk/gui_gtk_poi.c \ - $(top_srcdir)/navit/gui/gtk/gui_gtk_statusbar.c \ - $(top_srcdir)/navit/gui/internal/gui_internal.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_bookmark.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_command.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_html.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_menu.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_poi.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_search.c \ - $(top_srcdir)/navit/gui/internal/gui_internal_widget.c \ - $(top_srcdir)/navit/osd/core/osd_core.c \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitAndroidOverlay.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitDialogs.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitGraphics.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/Navit.java \ - $(top_srcdir)/navit/android/src/org/navitproject/navit/NavitMapDownloader.java \ - $(top_builddir)/navit/navit_shipped.c \ - $(top_builddir)/navit/strings.c - -if XGETTEXT_GLADE -POTFILES += $(top_builddir)/navit/navit_shipped.glade -endif - - -SUFFIXES = .po .mo - -.po.mo: - dir=`basename $@ .mo` ;\ - $(MSGFMT) --check --verbose --statistics --output-file=$@ $< && \ - mkdir -p ../locale/$$dir/LC_MESSAGES && \ - cp $@ ../locale/$$dir/LC_MESSAGES/navit.mo - -all: @MOFILES@ - -# Trick gettext to get translateable strings out of navit_shipped.xml - -$(top_builddir)/navit/navit_shipped.glade: $(top_srcdir)/navit/navit_shipped.xml - sed -e "s/vehicleprofile/atkaction/" -e "s/name=/description=/" -e 's/$(top_builddir)/navit/navit_shipped.glade - -$(top_builddir)/navit/navit_shipped.c: $(top_srcdir)/navit/navit_shipped.xml - sed -e 's/|//g' -e 's/^/|/' -e 's/$$/|/' -e 's/\(_("[^"]*")\)/| \1; |/g' -e 's/|[^|]*|//g' <$(top_srcdir)/navit/navit_shipped.xml >$(top_builddir)/navit/navit_shipped.c - -# Trick gettext to get translateable strings out of android/strings.xml - -$(top_builddir)/navit/strings.c: $(top_srcdir)/navit/android/res/values/strings.xml - sed -e "s/\\\\'/'/g" -e 's%.*]*name="\(.*\)">\(.*\)%// Android resource: @strings/\1\n_("\2")%g' -e '\%^//%!d'<$(top_srcdir)/navit/android/res/values/strings.xml >$(top_builddir)/navit/strings.c - -@POFILES@: navit.pot - sed 's/^"Project-Id-Version:.*/"Project-Id-Version: $(PACKAGE_STRING)\\n"/' < $(top_srcdir)/po/$@.in | $(MSGMERGE) --no-fuzzy-matching --verbose -o $(top_builddir)/po/$@ - navit.pot - -navit.pot: $(POTFILES) - $(XGETTEXT) --no-location --default-domain=navit \ - --add-comments --keyword=_ --keyword=_n --keyword=navit_nls_gettext --keyword=navit_nls_ngettext:1,2 $(POTFILES) - if cmp -s navit.po navit.pot; then \ - rm -f navit.po; \ - else \ - mv -f navit.po navit.pot; \ - fi - -install-data-local: $(CATALOGS) - $(mkinstalldirs) $(DESTDIR)$(datadir)/locale - chmod 755 $(DESTDIR)$(datadir)/locale - for n in $(CATALOGS) __DuMmY ; do \ - if test "$$n" -a "$$n" != "__DuMmY" ; then \ - l=`basename $$n .mo`; \ - $(mkinstalldirs) $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES; \ - chmod 755 $(DESTDIR)$(datadir)/locale/$$l; \ - chmod 755 $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES; \ - $(INSTALL_DATA) -m 644 $$n $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/navit.mo; \ - fi; \ - done - -uninstall-local: - for n in $(CATALOGS) __DuMmY ; do \ - if test "$$n" -a "$$n" != "__DuMmY" ; then \ - l=`basename $$n .mo`; \ - rm -f $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/navit.mo; \ - fi; \ - done - -distclean-local: - rm -f $(top_builddir)/navit/navit_shipped.glade $(top_builddir)/navit/navit_shipped.c $(top_builddir)/navit/strings.c - for n in $(CATALOGS) __DuMmY ; do \ - if test "$$n" -a "$$n" != "__DuMmY" ; then \ - l=`basename $$n .mo`; \ - rm -f ../locale/$$l/LC_MESSAGES/navit.mo; \ - rm -f $$l.po; \ - fi; \ - done -- cgit v1.2.1 From 6cc85d8923ebc39dbc6b65dbf6700fe6e50c2a06 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Fri, 9 Dec 2016 20:48:23 +0000 Subject: Fix:i18n:Escape commit message when merging updates --- ci/merge_i18n_update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/merge_i18n_update.sh b/ci/merge_i18n_update.sh index be9fa7759..84d47ed2f 100644 --- a/ci/merge_i18n_update.sh +++ b/ci/merge_i18n_update.sh @@ -4,5 +4,5 @@ git config --global user.email circleci@navit-project.org git rebase trunk git checkout trunk git merge --squash ${CIRCLE_BRANCH} -git commit -m ${message} +git commit -m "${message}" git push -- cgit v1.2.1 From 9067605145b5029a2451f5b7581881a20e5ce445 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Sat, 10 Dec 2016 06:55:24 +0000 Subject: Fix:i18n:Ensure that we pull from trunk before rebasing --- ci/merge_i18n_update.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/merge_i18n_update.sh b/ci/merge_i18n_update.sh index 84d47ed2f..1943b27e4 100644 --- a/ci/merge_i18n_update.sh +++ b/ci/merge_i18n_update.sh @@ -3,6 +3,7 @@ git config --global user.name "CircleCI" git config --global user.email circleci@navit-project.org git rebase trunk git checkout trunk +git pull git merge --squash ${CIRCLE_BRANCH} git commit -m "${message}" git push -- cgit v1.2.1 From 486f439e9afbf7a28eb0e0cbb664e78920befa91 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Mon, 19 Dec 2016 14:48:12 -0800 Subject: Update:i18n:Updated Ukrainian translation from launchpad --- po/uk.po.in | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/po/uk.po.in b/po/uk.po.in index 45c8c0875..787e71327 100644 --- a/po/uk.po.in +++ b/po/uk.po.in @@ -2,6 +2,7 @@ # Copyright (C) 2006-2016 The Navit Team # This file is distributed under the same license as the navit package. # Many thanks to the contributors of this translation: +# Anton https://launchpad.net/~goooglist # KaZeR https://launchpad.net/~kazer # Knedlyk https://launchpad.net/~yupadmin # Michael von Glasow https://launchpad.net/~michael-vonglasow @@ -12,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: navit 0.5.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2015-07-19 04:01+0000\n" -"Last-Translator: Michael von Glasow \n" +"PO-Revision-Date: 2016-12-17 00:03+0000\n" +"Last-Translator: Anton \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2703,41 +2704,43 @@ msgstr "" #. Android resource: @strings/no_backup_found msgid "No backup found" -msgstr "" +msgstr "Резервної копії не знайдено" #. Android resource: @strings/failed_to_restore msgid "Failed to restore" -msgstr "" +msgstr "Помилка відновлення" #. Android resource: @strings/backup_successful msgid "Backup successful" -msgstr "" +msgstr "Відновлення вдале" #. Android resource: @strings/restore_successful_please_restart_navit msgid "" "Restore Successful\n" "Please restart Navit" msgstr "" +"Відновлення вдале. \n" +"Будь ласка, перезавантажте Navit" #. Android resource: @strings/backup_not_found msgid "Backup not found" -msgstr "" +msgstr "Резервної копії не знайдено" #. Android resource: @strings/restore_failed msgid "Restore failed" -msgstr "" +msgstr "Відновлення невдале" #. Android resource: @strings/select_backup msgid "Select backup" -msgstr "" +msgstr "Оберіть резервну копію" #. Android resource: @strings/backup msgid "Backup" -msgstr "" +msgstr "Резервна копія" #. Android resource: @strings/restore msgid "Restore" -msgstr "" +msgstr "Відновлення" #. Android resource: @strings/TTS_title_data_missing msgid "System text to speech engine data is missing" -- cgit v1.2.1 From d9c1d9f90d21293a3702c457bdbbe06555980a2d Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Fri, 30 Dec 2016 17:19:52 -0800 Subject: Android ci optimization (#195) * Reducing differences between x86 and arm android builds * Fixed apk path in build scripts * Fixed xml artifacts path in build scripts * Bumping libpng to 1.6.27 * Removed APK signing webhook * Ensures that the arch-specific artifact directory exists * Reduced wget noise --- ci/build_android.sh | 55 ++++++++++++---------------------------------- ci/build_android_x86.sh | 21 +++++++++++------- ci/build_tomtom_minimal.sh | 8 +++---- ci/build_tomtom_plugin.sh | 26 +++++++++++----------- circle.yml | 3 --- 5 files changed, 44 insertions(+), 69 deletions(-) diff --git a/ci/build_android.sh b/ci/build_android.sh index 5e9794a07..610dbc6e2 100644 --- a/ci/build_android.sh +++ b/ci/build_android.sh @@ -1,64 +1,37 @@ #!/bin/bash -red='\e[0;31m' -grn='\e[0;32m' -yel='\e[1;33m' -off='\e[0m' +set -e -wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip - -# setup var's to perform environment setup and cmake +export ARCH="arm" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/arm-eabi.cmake" - export ANDROID_NDK=~/android-ndk-r13 export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin" - export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" +export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH +export BUILD_PATH=$START_PATH"/android-${ARCH}" -export ANDROID_TOOLS_CHECK=$ANDROID_SDK"/tools" - -export ANDROID_PLATFORM_TOOLS_CHECK=$ANDROID_SDK"/platform-tools" - -export ANDROID_BUILD_TOOLS="23.0.1" -export ANDROID_BUILD_CHECK=$ANDROID_SDK"/build-tools/"$BUILD_TOOLS - -export ANDROID_PLATFORM_LATEST="android-21" -export ANDROID_PLATFORM_MIN="android-7" -export BUILD_PATH=$START_PATH"/android-build" -export ANDROID_ENV=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS - -# $ANDROID_HOME is /usr/local/android-sdk-linux for the android env. provided by CircleCI - -# If path already has our environment no need to set it -if echo "$ANDROID_ENV" | grep -q "$PATH"; then - echo -e "${grn}" " Android PATH configuration... ALREADY SET" "${off}" - echo -else - echo -e "${grn}" " Android PATH configuration... EXPORTED" "${off}" - export PATH=$ANDROID_ENV:$PATH - echo -fi +wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip +[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH -export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS:$PATH + android list targets -mkdir $CIRCLE_ARTIFACTS/android/ -cp ~/navit/navit/android/CMakeLists.txt $CIRCLE_ARTIFACTS/android/ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 $SOURCE_PATH -make || exit 1 +make + if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-release-unsigned.apk || exit 1 + make apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make apkg && mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug.apk || exit 1 + make apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -cp ~/android-build/navit/*.xml $CIRCLE_ARTIFACTS/android/ +[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ +cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ echo echo "Build leftovers :" -ls navit/android/bin/ +ls $BUILD_PATH diff --git a/ci/build_android_x86.sh b/ci/build_android_x86.sh index 022b7f5af..b42d03d9f 100644 --- a/ci/build_android_x86.sh +++ b/ci/build_android_x86.sh @@ -1,3 +1,7 @@ +#!/bin/bash +set -e + +export arch="x86" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/i686-android.cmake" @@ -6,27 +10,28 @@ export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/x86-4.9/prebuilt/linux-x86_64/bi export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH -export BUILD_PATH=$START_PATH"/android-x86" +export BUILD_PATH=$START_PATH"/android-${ARCH}" wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -unzip -q -d ~ android-ndk-r13-linux-x86_64.zip +[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH android list targets -cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH || exit -1 -make || exit -1 +cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=23 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH +make if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-x86-release-unsigned.apk || exit 1 + make apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make apkg && mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-x86-debug.apk || exit 1 + make apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -#cp ~/android-build/navit/*.xml $CIRCLE_ARTIFACTS/android/ +[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ +cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ echo echo "Build leftovers :" -ls navit/android/bin/ +ls $BUILD_PATH diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index 6a8582be1..a931ece4c 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -40,9 +40,9 @@ if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar. wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.26.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" then - wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.26.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets fi # toolchain @@ -71,8 +71,8 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.26.tar.gz -cd libpng-1.6.26/ +tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz +cd libpng-1.6.27/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 3080b39c1..01710a0ab 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -36,12 +36,12 @@ mkdir -p ~/tomtom_assets if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] then - wget -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets + wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.26.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" then - wget -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.26.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets fi # toolchain @@ -52,7 +52,7 @@ tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # espeak cd /tmp # this one includes the precompiled voices -wget -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip +wget -nv -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip unzip espeak-1.48.04-source.zip cd espeak-1.48.04-source sed -i "s/PREFIX=\/usr//g" src/Makefile @@ -177,7 +177,7 @@ arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakd # zlib cd /tmp -wget -c http://zlib.net/zlib-1.2.8.tar.gz +wget -nv -c http://zlib.net/zlib-1.2.8.tar.gz tar xzf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=$PREFIX @@ -186,7 +186,7 @@ make install # libxml cd /tmp/ -wget -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz +wget -nv -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz tar xzf libxml2-2.7.8.tar.gz cd libxml2-2.7.8/ ./configure --prefix=$PREFIX --host=$ARCH --without-python @@ -195,15 +195,15 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.26.tar.gz -cd libpng-1.6.26/ +tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz +cd libpng-1.6.27/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install cd /tmp -wget -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz +wget -nv -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz tar xzf freetype-2.5.0.tar.gz cd freetype-2.5.0 ./configure --prefix=$PREFIX --host=$ARCH @@ -214,7 +214,7 @@ freetype-config --cflags # glib cd /tmp -wget -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz +wget -nv -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz tar xzf glib-2.25.17.tar.gz cd glib-2.25.17 cat > tomtom.cache << EOF @@ -249,10 +249,10 @@ make install cd /tmp -wget -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz +wget -nv -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz tar xzf SDL-1.2.15.tar.gz cd SDL-1.2.15 -wget -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch +wget -nv -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch patch -p0 -i sdl-fbcon-notty.patch ./configure --prefix=$PREFIX --host=$ARCH \ --disable-esd --disable-cdrom --disable-joystick --disable-video-x11 \ @@ -273,7 +273,7 @@ export PATH=$PREFIX/bin:$PATH # sdl image cd /tmp -wget -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz +wget -nv -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz tar xzf SDL_image-1.2.12.tar.gz cd SDL_image-1.2.12 ./configure --prefix=$PREFIX --host=$ARCH diff --git a/circle.yml b/circle.yml index d00c9f624..b3ccc4dab 100644 --- a/circle.yml +++ b/circle.yml @@ -58,6 +58,3 @@ deployment: owner: navit-gps commands: - bash ci/merge_i18n_update.sh -notify: - webhooks: - - url: http://62.210.125.30:8000/ -- cgit v1.2.1 From 320a42e29f3ae0d56f35d12b653d36f3c688f4a9 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Fri, 30 Dec 2016 18:10:39 -0800 Subject: Moving the linux bin to a more generic place to match other builds --- ci/build_linux.sh | 8 ++++---- circle.yml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/build_linux.sh b/ci/build_linux.sh index 5cbd2039a..3fb730dca 100644 --- a/ci/build_linux.sh +++ b/ci/build_linux.sh @@ -8,8 +8,8 @@ if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trun tar xfz ~/assets/cov-analysis-linux64-7.6.0.tar.gz export PATH=~/navit/cov-analysis-linux64-7.6.0/bin:$PATH - mkdir bin && cd bin - cov-build --dir cov-int cmake ../ ${cmake_opts} + mkdir ~/linux-bin && cd ~/linux-bin + cov-build --dir cov-int cmake ~/${CIRCLE_PROJECT_REPONAME}/ ${cmake_opts} cov-build --dir cov-int make || exit -1 tar czvf navit.tgz cov-int @@ -26,8 +26,8 @@ if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trun curl "https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -H "$lp_cookie" -H "Referer: https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -F file=@po/navit.pot | grep title else - mkdir bin && cd bin - cmake ../ ${cmake_opts} || exit -1 + mkdir ~/linux-bin && cd ~/linux-bin + cmake ~/${CIRCLE_PROJECT_REPONAME}/ ${cmake_opts} || exit -1 make || exit -1 fi diff --git a/circle.yml b/circle.yml index b3ccc4dab..9ff4ee7a9 100644 --- a/circle.yml +++ b/circle.yml @@ -32,15 +32,15 @@ test: - ci/build_*.sh post: - sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml: - pwd: bin/navit/ + pwd: ~/linux-bin/navit/ - sed -i -e 's@name="Demo" profilename="car" enabled="no" active="yes"@name="Demo" profilename="car" enabled="yes" active="yes" follow="1" refresh="1"@' navit.xml: - pwd: bin/navit/ + pwd: ~/linux-bin/navit/ - sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml: - pwd: bin/navit/ + pwd: ~/linux-bin/navit/ - sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml: - pwd: bin/navit/ + pwd: ~/linux-bin/navit/ - ./navit: - pwd: bin/navit/ + pwd: ~/linux-bin/navit/ background: true - sleep 5 - import -window root $CIRCLE_ARTIFACTS/default.png -- cgit v1.2.1 From 37596b0863e5c821724fe65775eba5d66736b81b Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Sun, 1 Jan 2017 13:50:55 -0800 Subject: Fix:CI:Improved linux tests (#196) * Moving linux tests to a script CircleCI parallelism does not guarantee that tests will run reliably on the same containers. This is causing issues for the linux tests, previously defined in the post section, that need to run on the same container as the linux build. * Fixed linux tests scripts path * Specifies full path to the linux test script * Bumping zlib to 1.2.9 for tomtom builds --- ci/build_linux.sh | 4 ++++ ci/build_tomtom_minimal.sh | 8 ++++---- ci/build_tomtom_plugin.sh | 6 +++--- ci/run_linux_tests.sh | 18 ++++++++++++++++++ circle.yml | 16 ---------------- 5 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 ci/run_linux_tests.sh diff --git a/ci/build_linux.sh b/ci/build_linux.sh index 3fb730dca..3716f47d9 100644 --- a/ci/build_linux.sh +++ b/ci/build_linux.sh @@ -34,3 +34,7 @@ fi if [[ "$CIRCLE_ARTIFACTS" != "" ]]; then cp -r navit/xpm $CIRCLE_ARTIFACTS fi + + +# Done with the builds tests. Running some app tests +bash ~/navit/ci/run_linux_tests.sh diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index a931ece4c..3c8a65030 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -41,7 +41,7 @@ if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar. fi if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" - then +then wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets fi @@ -53,9 +53,9 @@ tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.8.tar.gz -tar xzf zlib-1.2.8.tar.gz -cd zlib-1.2.8 +wget -nv -c http://zlib.net/zlib-1.2.9.tar.gz +tar xzf zlib-1.2.9.tar.gz +cd zlib-1.2.9 ./configure --prefix=$PREFIX make -j$JOBS make install diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 01710a0ab..a8820f3a2 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -177,9 +177,9 @@ arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakd # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.8.tar.gz -tar xzf zlib-1.2.8.tar.gz -cd zlib-1.2.8 +wget -nv -c http://zlib.net/zlib-1.2.9.tar.gz +tar xzf zlib-1.2.9.tar.gz +cd zlib-1.2.9 ./configure --prefix=$PREFIX make -j$JOBS make install diff --git a/ci/run_linux_tests.sh b/ci/run_linux_tests.sh new file mode 100644 index 000000000..c34ea0bfb --- /dev/null +++ b/ci/run_linux_tests.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +pushd ~/linux-bin/navit/ +sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml +sed -i -e 's@name="Demo" profilename="car" enabled="no" active="yes"@name="Demo" profilename="car" enabled="yes" active="yes" follow="1" refresh="1"@' navit.xml +sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml +sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml + +./navit & +pid=$! + +import -window root $CIRCLE_ARTIFACTS/default.png + +python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ + +dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit diff --git a/circle.yml b/circle.yml index 9ff4ee7a9..4b296a25c 100644 --- a/circle.yml +++ b/circle.yml @@ -30,22 +30,6 @@ test: parallel: true files: - ci/build_*.sh - post: - - sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml: - pwd: ~/linux-bin/navit/ - - sed -i -e 's@name="Demo" profilename="car" enabled="no" active="yes"@name="Demo" profilename="car" enabled="yes" active="yes" follow="1" refresh="1"@' navit.xml: - pwd: ~/linux-bin/navit/ - - sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml: - pwd: ~/linux-bin/navit/ - - sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml: - pwd: ~/linux-bin/navit/ - - ./navit: - pwd: ~/linux-bin/navit/ - background: true - - sleep 5 - - import -window root $CIRCLE_ARTIFACTS/default.png - - python ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ - - dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit deployment: merge_into_master: branch: trunk -- cgit v1.2.1 From 57c731ddba87dd51d5dad54e64c99189c7adff7f Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Sun, 8 Jan 2017 22:47:09 -0800 Subject: Added some usage images to the README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 568255875..455f46eaa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ [![Build Status](https://img.shields.io/circleci/project/github/navit-gps/navit/trunk.svg)](https://circleci.com/gh/navit-gps/navit) +Navit on Android tablet: + +![navit on android](http://wiki.openstreetmap.org/w/images/2/25/Navit_android.png) + +Navit on Linux based Carputer: + +![navit-nuc-osd](https://github.com/pgrandin/navit-nuc-layout/raw/master/screenshot.png) + NavIT ===== -- cgit v1.2.1 From f7628d0e24a3290b2e966beb156bfd2d26bc6033 Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 9 Jan 2017 17:33:05 +0100 Subject: Update build_tomtom_minimal.sh bump libpng --- ci/build_tomtom_minimal.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index 3c8a65030..40f75474a 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -40,9 +40,9 @@ if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar. wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.28.tar.gz" then - wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.28.tar.gz -P ~/tomtom_assets fi # toolchain @@ -71,8 +71,8 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz -cd libpng-1.6.27/ +tar xzf ~/tomtom_assets/libpng-1.6.28.tar.gz +cd libpng-1.6.28/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install -- cgit v1.2.1 From 4650ccc97cc22a0d18381f7f28f8ea0792778bc9 Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 9 Jan 2017 17:36:16 +0100 Subject: Update build_tomtom_plugin.sh bump libpng --- ci/build_tomtom_plugin.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index a8820f3a2..6bcba7e19 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -39,9 +39,9 @@ if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar. wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi -if ! test -f "~/tomtom_assets/libpng-1.6.27.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.28.tar.gz" then - wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/tomtom_assets + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.28.tar.gz -P ~/tomtom_assets fi # toolchain @@ -195,8 +195,8 @@ make install # libpng cd /tmp/ -tar xzf ~/tomtom_assets/libpng-1.6.27.tar.gz -cd libpng-1.6.27/ +tar xzf ~/tomtom_assets/libpng-1.6.28.tar.gz +cd libpng-1.6.28/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS make install -- cgit v1.2.1 From 03338c63101fcde114eb0ad9e423f206db12064c Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 9 Jan 2017 17:42:04 +0100 Subject: Update build_tomtom_minimal.sh bump zlib --- ci/build_tomtom_minimal.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index 40f75474a..8eef9a351 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -53,9 +53,9 @@ tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.9.tar.gz -tar xzf zlib-1.2.9.tar.gz -cd zlib-1.2.9 +wget -nv -c http://zlib.net/zlib-1.2.10.tar.gz +tar xzf zlib-1.2.10.tar.gz +cd zlib-1.2.10 ./configure --prefix=$PREFIX make -j$JOBS make install -- cgit v1.2.1 From 51e059a359b52941a3a178fef1402c2f81ba7f8e Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 9 Jan 2017 17:58:19 +0100 Subject: Update build_tomtom_plugin.sh bump zlib --- ci/build_tomtom_plugin.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 6bcba7e19..2bdc9f5ec 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -177,9 +177,9 @@ arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakd # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.9.tar.gz -tar xzf zlib-1.2.9.tar.gz -cd zlib-1.2.9 +wget -nv -c http://zlib.net/zlib-1.2.10.tar.gz +tar xzf zlib-1.2.10.tar.gz +cd zlib-1.2.10 ./configure --prefix=$PREFIX make -j$JOBS make install -- cgit v1.2.1 From 92948453a09600fbf983be3d0c99d4ed28ef2b82 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Wed, 11 Jan 2017 15:23:11 -0800 Subject: Added download links for PlayStore and F-Droid in the README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 455f46eaa..7565aa5e5 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ Navit on Linux based Carputer: ![navit-nuc-osd](https://github.com/pgrandin/navit-nuc-layout/raw/master/screenshot.png) +

+ + + +

+ NavIT ===== -- cgit v1.2.1 From 495f69c513d573bbf14699b3a83dc820e7450342 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Thu, 12 Jan 2017 11:37:51 -0800 Subject: Fix:Tomtom:Switching to mirrored toolchain --- ci/build_tomtom_minimal.sh | 2 +- ci/build_tomtom_plugin.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index 8eef9a351..d03d27411 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -37,7 +37,7 @@ mkdir -p ~/tomtom_assets if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] then - wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets + wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi if ! test -f "~/tomtom_assets/libpng-1.6.28.tar.gz" diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 2bdc9f5ec..8c8735c2f 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -36,7 +36,7 @@ mkdir -p ~/tomtom_assets if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] then - wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets + wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets fi if ! test -f "~/tomtom_assets/libpng-1.6.28.tar.gz" -- cgit v1.2.1 From 10321199ef40890d8f83ad0b8877862abc00fd2f Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Thu, 12 Jan 2017 11:44:01 -0800 Subject: Update:i18n:Updated German translation from launchpad --- po/de.po.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/po/de.po.in b/po/de.po.in index 3ff969ec8..aba5a314f 100644 --- a/po/de.po.in +++ b/po/de.po.in @@ -1,5 +1,5 @@ # German translations for navit -# Copyright (C) 2006-2016 The Navit Team +# Copyright (C) 2006-2017 The Navit Team # This file is distributed under the same license as the navit package. # Many thanks to the contributors of this translation: # Achim Behrens https://launchpad.net/~k1l @@ -26,6 +26,7 @@ # Roschkor https://launchpad.net/~bound-one2000 # S.E. https://launchpad.net/~stephan-evert # Stefan Sordon https://launchpad.net/~stefan-sordon +# Steffen https://launchpad.net/~zintor # Thuttle https://launchpad.net/~archibald-thuttle # Tobias Bannert https://launchpad.net/~toba # Usul https://launchpad.net/~usul1 -- cgit v1.2.1 From 72a9284980f0ff6b8dd3972c0c15b3945c94559c Mon Sep 17 00:00:00 2001 From: zintor Date: Fri, 13 Jan 2017 19:23:07 +0100 Subject: Updated: F-Droid download link (#199) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7565aa5e5..399b96802 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Navit on Linux based Carputer:

- +

NavIT -- cgit v1.2.1 From 02c08676d2fc2d9646fd314868d80148e05e6eae Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 23 Jan 2017 16:04:38 +0100 Subject: bump zlib --- ci/build_tomtom_minimal.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh index d03d27411..8cf0c735a 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -53,9 +53,9 @@ tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.10.tar.gz -tar xzf zlib-1.2.10.tar.gz -cd zlib-1.2.10 +wget -nv -c http://zlib.net/zlib-1.2.11.tar.gz +tar xzf zlib-1.2.11.tar.gz +cd zlib-1.2.11 ./configure --prefix=$PREFIX make -j$JOBS make install -- cgit v1.2.1 From 9bf65125330a89c8202f7f7328a464dcb80a9904 Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 23 Jan 2017 16:05:30 +0100 Subject: bump zlib --- ci/build_tomtom_plugin.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 8c8735c2f..548109877 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -177,9 +177,9 @@ arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakd # zlib cd /tmp -wget -nv -c http://zlib.net/zlib-1.2.10.tar.gz -tar xzf zlib-1.2.10.tar.gz -cd zlib-1.2.10 +wget -nv -c http://zlib.net/zlib-1.2.11.tar.gz +tar xzf zlib-1.2.11.tar.gz +cd zlib-1.2.11 ./configure --prefix=$PREFIX make -j$JOBS make install -- cgit v1.2.1 From 94a3c994a7a5970be3b3bb9d290f9e1d8d437034 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Wed, 25 Jan 2017 10:42:08 -0800 Subject: Android patches from Jandegr (#202) * ndk downgrade ndk downgrade * ndk downgrade * Update build_android.sh * Update build_android_x86.sh * Update build_android.sh * Update build_android_x86.sh * Update build_android_x86.sh * Update build_android.sh * Update NavitAppConfig.java * Add files via upload * Delete acra-4.3.0b2.jar * Update NavitAppConfig.java --- ci/build_android.sh | 6 +++--- ci/build_android_x86.sh | 6 +++--- navit/android/libs/acra-4.3.0b2.jar | Bin 96994 -> 0 bytes navit/android/libs/acra-4.8.5.jar | Bin 0 -> 154375 bytes navit/android/libs/android-support-v4.jar | Bin 0 -> 1364299 bytes .../src/org/navitproject/navit/NavitAppConfig.java | 8 ++++++-- 6 files changed, 12 insertions(+), 8 deletions(-) delete mode 100644 navit/android/libs/acra-4.3.0b2.jar create mode 100644 navit/android/libs/acra-4.8.5.jar create mode 100644 navit/android/libs/android-support-v4.jar diff --git a/ci/build_android.sh b/ci/build_android.sh index 610dbc6e2..dc858e2ca 100644 --- a/ci/build_android.sh +++ b/ci/build_android.sh @@ -5,15 +5,15 @@ export ARCH="arm" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/arm-eabi.cmake" -export ANDROID_NDK=~/android-ndk-r13 +export ANDROID_NDK=~/android-ndk-r11c export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin" export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH export BUILD_PATH=$START_PATH"/android-${ARCH}" -wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip +wget -nv -c http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip +[ -d ~/android-ndk-r11c ] || unzip -q -d ~ android-ndk-r11c-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH diff --git a/ci/build_android_x86.sh b/ci/build_android_x86.sh index b42d03d9f..c5a421cbe 100644 --- a/ci/build_android_x86.sh +++ b/ci/build_android_x86.sh @@ -5,15 +5,15 @@ export arch="x86" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" export CMAKE_FILE=$SOURCE_PATH"/Toolchain/i686-android.cmake" -export ANDROID_NDK=~/android-ndk-r13 +export ANDROID_NDK=~/android-ndk-r11c export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/x86-4.9/prebuilt/linux-x86_64/bin" export ANDROID_SDK="/usr/local/android-sdk-linux/" export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools" export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH export BUILD_PATH=$START_PATH"/android-${ARCH}" -wget -nv -c http://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip -[ -d ~/android-ndk-r13 ] || unzip -q -d ~ android-ndk-r13-linux-x86_64.zip +wget -nv -c http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip +[ -d ~/android-ndk-r11c ] || unzip -q -d ~ android-ndk-r11c-linux-x86_64.zip [ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH cd $BUILD_PATH diff --git a/navit/android/libs/acra-4.3.0b2.jar b/navit/android/libs/acra-4.3.0b2.jar deleted file mode 100644 index 259a69581..000000000 Binary files a/navit/android/libs/acra-4.3.0b2.jar and /dev/null differ diff --git a/navit/android/libs/acra-4.8.5.jar b/navit/android/libs/acra-4.8.5.jar new file mode 100644 index 000000000..f0044ece8 Binary files /dev/null and b/navit/android/libs/acra-4.8.5.jar differ diff --git a/navit/android/libs/android-support-v4.jar b/navit/android/libs/android-support-v4.jar new file mode 100644 index 000000000..aa0b1a5cc Binary files /dev/null and b/navit/android/libs/android-support-v4.jar differ diff --git a/navit/android/src/org/navitproject/navit/NavitAppConfig.java b/navit/android/src/org/navitproject/navit/NavitAppConfig.java index 32f003f18..13ccc9bb4 100755 --- a/navit/android/src/org/navitproject/navit/NavitAppConfig.java +++ b/navit/android/src/org/navitproject/navit/NavitAppConfig.java @@ -8,10 +8,14 @@ import org.navitproject.navit.NavitAddressSearchActivity.NavitAddress; import android.app.Application; import android.content.SharedPreferences; import android.util.Log; - +import org.acra.*; import org.acra.annotation.*; -@ReportsCrashes(formKey = "dGlrNVRIOVVKYjB0UGVoLUZPanlzWFE6MQ") +//@ReportsCrashes(formKey = "dGlrNVRIOVVKYjB0UGVoLUZPanlzWFE6MQ") +@ReportsCrashes(mailTo = "android@navit-project.org", + mode = ReportingInteractionMode.TOAST, + resToastText = R.string.app_name) + public class NavitAppConfig extends Application { private static final int MAX_LAST_ADDRESSES = 10; -- cgit v1.2.1 From 5ae7e6379326588f98cfd8a774aa0caec286646d Mon Sep 17 00:00:00 2001 From: jandegr Date: Wed, 25 Jan 2017 20:50:40 +0100 Subject: Jandegr patch 1 (#203) * ndk downgrade ndk downgrade * ndk downgrade * Update build_android.sh * Update build_android_x86.sh * Update build_android.sh * Update build_android_x86.sh * Update build_android_x86.sh * Update build_android.sh * Update NavitAppConfig.java * Add files via upload * Delete acra-4.3.0b2.jar * Update NavitAppConfig.java * Update Navit.java * Update AndroidManifest.xml.cmake * Update Navit.java * Update Navit.java --- navit/android/AndroidManifest.xml.cmake | 10 ++++++++++ navit/android/src/org/navitproject/navit/Navit.java | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/navit/android/AndroidManifest.xml.cmake b/navit/android/AndroidManifest.xml.cmake index b5bd757cb..7aa882bb8 100644 --- a/navit/android/AndroidManifest.xml.cmake +++ b/navit/android/AndroidManifest.xml.cmake @@ -37,5 +37,15 @@ + + diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java index c8578df07..11a1919b7 100644 --- a/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/android/src/org/navitproject/navit/Navit.java @@ -303,8 +303,8 @@ public class Navit extends Activity PendingIntent appIntent = PendingIntent.getActivity(getApplicationContext(), 0, getIntent(), 0); // FIXME : needs a fix for sdk 23 // NavitNotification.setLatestEventInfo(getApplicationContext(), "Navit", getString(R.string.notification_event_default), appIntent); // Set the text in the notification - NavitNotification.flags|=Notification.FLAG_ONGOING_EVENT; // Ensure that the notification appears in Ongoing - nm.notify(R.string.app_name, NavitNotification); // Set the notification +// NavitNotification.flags|=Notification.FLAG_ONGOING_EVENT; // Ensure that the notification appears in Ongoing +// nm.notify(R.string.app_name, NavitNotification); // Set the notification // Status and navigation bar sizes // These are platform defaults and do not change with rotation, but we have to figure out which ones apply @@ -864,8 +864,8 @@ public class Navit extends Activity public void exit() { - NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - nm.cancel(R.string.app_name); +// NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); +// nm.cancel(R.string.app_name); NavitVehicle.removeListener(); NavitDestroy(); } -- cgit v1.2.1 From 8b1459597c079af64b7bb32c618499cc157bf2b7 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Wed, 25 Jan 2017 19:07:19 -0800 Subject: Improved documentation --- navit/event.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/navit/event.c b/navit/event.c index 667e5bdc3..5aee40689 100644 --- a/navit/event.c +++ b/navit/event.c @@ -77,6 +77,15 @@ event_remove_watch(struct event_watch *ev) event_methods.remove_watch(ev); } +/** + * Add an event timeout + * + * @param the timeout itself in msec + * @param multi 0 means that the timeout will fire only once, 1 means that it will repeat + * @param the callback to call when the timeout expires + * + * @returns the result of the event_methods.add_timeout() call + */ struct event_timeout * event_add_timeout(int timeout, int multi, struct callback *cb) { -- cgit v1.2.1 From 6772f29e12b7755c3d7b19db22cdd22992425959 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Mon, 30 Jan 2017 10:49:43 -0800 Subject: Reducing code duplication in the tomtom builds (#201) * Reducing code duplication in the tomtom builds * Reducing code duplication in the tomtom builds * Reducing code duplication in the tomtom builds * Track each build result to catch errors * Track each build result to catch errors * Stop builds on errors * Working on the tomtom plugin build * Moving espeak for tomtom to the common script * Moving sdl tests for tomtom to the common script * fix espeakdsp buffer usage for tomtom (#200) * fix buffer usage dont send more bytes then received. * remove last blank line * Disabling dbus tests, needs investigation --- ci/build.sh | 2 + ci/run_linux_tests.sh | 6 +- ci/setup_tomtom_requirements.sh | 208 ++++++++++++++++++++++++++++++++++++++++ circle.yml | 1 - contrib/tomtom/espeakdsp.c | 101 +++++++++++++++++++ 5 files changed, 314 insertions(+), 4 deletions(-) create mode 100644 ci/setup_tomtom_requirements.sh create mode 100644 contrib/tomtom/espeakdsp.c diff --git a/ci/build.sh b/ci/build.sh index 7f8f46279..b5d81e9dc 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -1,3 +1,5 @@ +set -e + echo "$# build script (s) to run" for i in $(seq 1 $#); do diff --git a/ci/run_linux_tests.sh b/ci/run_linux_tests.sh index c34ea0bfb..0897ec4e4 100644 --- a/ci/run_linux_tests.sh +++ b/ci/run_linux_tests.sh @@ -13,6 +13,6 @@ pid=$! import -window root $CIRCLE_ARTIFACTS/default.png -python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ - -dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit +# python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ +# +# dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit diff --git a/ci/setup_tomtom_requirements.sh b/ci/setup_tomtom_requirements.sh new file mode 100644 index 000000000..bf07211c6 --- /dev/null +++ b/ci/setup_tomtom_requirements.sh @@ -0,0 +1,208 @@ +#!/bin/sh +# this builds navit for tomtom +# in case you want to build a plugin for tomtom use build_tomtom_plugin.sh instead +# in case you want to build a standalone system +# https://github.com/george-hopkins/opentom +# https://github.com/gefin/opentom + +set -e + +export ARCH=arm-linux +cp Toolchain/$ARCH.cmake /tmp + +# toolchain +export TOMTOM_SDK_DIR=/opt/tomtom-sdk +mkdir -p $TOMTOM_SDK_DIR >/dev/null 2>&1 || export TOMTOM_SDK_DIR=$HOME/tomtom-sdk +export PREFIX=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/sys-root +export PATH=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/bin:$PREFIX/bin/:$PATH +export CFLAGS="-O2 -I$PREFIX/include -I$PREFIX/usr/include" +export CPPFLAGS="-I$PREFIX/include -I$PREFIX/usr/include" +export LDFLAGS="-L$PREFIX/lib -L$PREFIX/usr/lib" +export CC=$ARCH-gcc +export CXX=$ARCH-g++ +export LD=$ARCH-ld +export NM="$ARCH-nm -B" +export AR=$ARCH-ar +export RANLIB=$ARCH-ranlib +export STRIP=$ARCH-strip +export OBJCOPY=$ARCH-objcopy +export LN_S="ln -s" +export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig +JOBS=`getconf _NPROCESSORS_ONLN` + +echo "Jobs" +echo $JOBS + +mkdir -p ~/assets/tomtom/ + +if ! [ -e "~/assets/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] + then + wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/assets/tomtom +fi + +if ! test -f "~/assets/tomtom/libpng-1.6.27.tar.gz" +then + wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.27.tar.gz -P ~/assets/tomtom +fi + +# toolchain +cd /tmp +mkdir -p $TOMTOM_SDK_DIR +tar xzf ~/assets/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -C $TOMTOM_SDK_DIR + +# zlib +cd /tmp +wget -nv -c http://zlib.net/zlib-1.2.9.tar.gz +tar xzf zlib-1.2.9.tar.gz +cd zlib-1.2.9 +./configure --prefix=$PREFIX +make -j$JOBS +make install + +# libxml +cd /tmp/ +wget -nv -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz +tar xzf libxml2-2.7.8.tar.gz +cd libxml2-2.7.8/ +./configure --prefix=$PREFIX --host=$ARCH --without-python +make -j$JOBS +make install + +# libpng +cd /tmp/ +tar xzf ~/assets/tomtom/libpng-1.6.27.tar.gz +cd libpng-1.6.27/ +./configure --prefix=$PREFIX --host=$ARCH +make -j$JOBS +make install + + +cd /tmp +wget -nv -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz +tar xzf freetype-2.5.0.tar.gz +cd freetype-2.5.0 +./configure --prefix=$PREFIX --host=$ARCH +make -j$JOBS +make install + +freetype-config --cflags + +# glib +cd /tmp +wget -nv -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz +tar xzf glib-2.25.17.tar.gz +cd glib-2.25.17 +cat > tomtom.cache << EOF +glib_cv_long_long_format=ll +glib_cv_stack_grows=no +glib_cv_uscore=no +ac_cv_func_posix_getgrgid_r=yes +ac_cv_func_posix_getpwuid_r=yes +EOF +chmod a-w tomtom.cache +./configure --prefix=$PREFIX --host=$ARCH --cache-file=tomtom.cache +sed -i "s|cp xgen-gmc gmarshal.c |cp xgen-gmc gmarshal.c \&\& sed -i \"s\|g_value_get_schar\|g_value_get_char\|g\" gmarshal.c |g" gobject/Makefile +make -j$JOBS +make install + + +# tslib +cd /tmp +rm -rf tslib-svn +git clone https://github.com/playya/tslib-svn.git +cd tslib-svn +sed -i "s|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g" configure.ac +sed -i "119i\#ifdef EVIOCGRAB" plugins/input-raw.c +sed -i "124i\#endif" plugins/input-raw.c +sed -i "290i\#ifdef EVIOCGRAB" plugins/input-raw.c +sed -i "294i\#endif" plugins/input-raw.c +sed -i "s|# module_raw h3600|module_raw h3600|g" etc/ts.conf # tomtom go 710 +./autogen.sh +./configure --prefix=$PREFIX --host=$ARCH +make -j$JOBS +make install + + +cd /tmp +wget -nv -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz +tar xzf SDL-1.2.15.tar.gz +cd SDL-1.2.15 +wget -nv -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch +patch -p0 -i sdl-fbcon-notty.patch +./configure --prefix=$PREFIX --host=$ARCH \ + --disable-esd --disable-cdrom --disable-joystick --disable-video-x11 \ + --disable-x11-vm --disable-dga --disable-video-x11-dgamouse \ + --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-directfb \ + --enable-video-fbcon --disable-audio CFLAGS="$CFLAGS -DFBCON_NOTTY" +make -j$JOBS +make install + +# sdl test utilities +cd test +./configure --prefix=$PREFIX --host=$ARCH +make testvidinfo +cp testvidinfo $PREFIX/usr/bin/ + +# to find sdl-config +export PATH=$PREFIX/bin:$PATH + +# sdl image +cd /tmp +wget -nv -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz +tar xzf SDL_image-1.2.12.tar.gz +cd SDL_image-1.2.12 +./configure --prefix=$PREFIX --host=$ARCH +make -j$JOBS +make install + + + +# espeak +cd /tmp +# this one includes the precompiled voices +wget -nv -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip +unzip espeak-1.48.04-source.zip +cd espeak-1.48.04-source +sed -i "s/PREFIX=\/usr//g" src/Makefile +sed -i "s/DATADIR=\/usr\/share\/espeak-data/DATADIR=~\/share\/espeak-data/g" src/Makefile +sed -i "s/AUDIO = portaudio/#AUDIO = portaudio/g" src/Makefile +sed -i "s/-fvisibility=hidden//g" src/Makefile +cat src/Makefile +make -C src +cd src +sudo make install + +# http://forum.navit-project.org/viewtopic.php?f=17&t=568 +cd /tmp +arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include ~/navit/contrib/tomtom/espeakdsp.c -o espeakdsp + + + +# in the end we only want Navit locale +rm -r $PREFIX/share/locale + +# navit +cd ~/navit +sed -i "s|set ( TOMTOM_SDK_DIR /opt/tomtom-sdk )|set ( TOMTOM_SDK_DIR $TOMTOM_SDK_DIR )|g" /tmp/$ARCH.cmake +mkdir -p build +cd build +cmake ../ -DCMAKE_INSTALL_PREFIX=$PREFIX -DFREETYPE_INCLUDE_DIRS=$PREFIX/include/freetype2/ -Dsupport/gettext_intl=TRUE \ +-DHAVE_API_TOMTOM=TRUE -DXSLTS=tomtom -DAVOID_FLOAT=TRUE -Dmap/mg=FALSE -DUSE_PLUGINS=0 -DCMAKE_TOOLCHAIN_FILE=/tmp/$ARCH.cmake \ +-DDISABLE_QT=ON -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n +make -j$JOBS +make install +cd .. + + +# creating directories +OUT_PATH="/tmp/tomtom/sdcard" +rm -rf $OUT_PATH +mkdir -p $OUT_PATH +cd $OUT_PATH +mkdir -p navit SDKRegistry +cd navit +mkdir -p bin lib share sdl ts +cd share +mkdir -p fonts +cd .. + diff --git a/circle.yml b/circle.yml index 4b296a25c..6fa1ccc22 100644 --- a/circle.yml +++ b/circle.yml @@ -6,7 +6,6 @@ dependencies: - ~/.android - ~/android - "~/assets/" - - ~/tomtom_assets pre: - "[ -d ~/assets ] || mkdir ~/assets" - "[ -d ~/android ] || mkdir ~/android" diff --git a/contrib/tomtom/espeakdsp.c b/contrib/tomtom/espeakdsp.c new file mode 100644 index 000000000..bd6689a1f --- /dev/null +++ b/contrib/tomtom/espeakdsp.c @@ -0,0 +1,101 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define espeakpath "/mnt/sdcard/navit/bin/espeak" +#define IBUFFERLEN 1024 +#define MAXARGC 30 + + +int main(int argc, char *argv[],char *envp[]) +{ + int pipefd[2]; + pid_t cpid; + char buf; + int co,wp,l,fh; + short bufi[IBUFFERLEN],bufo[IBUFFERLEN*2]; + int rate=22050; + + char *newargv[MAXARGC+2]; + + for(co=0;co=MAXARGC)break; + newargv[co]=argv[co]; + } + newargv[co++]="--stdout"; + newargv[co++]=NULL; + + if (pipe(pipefd) == -1) + { + perror("pipe"); + exit(EXIT_FAILURE); + } + + if(setpriority(PRIO_PROCESS,0,-10)) + perror ("setpriority"); + + cpid = fork(); + if (cpid == -1) + { + perror("fork"); + exit(EXIT_FAILURE); + } + + if (cpid == 0) + { /* Child writes to pipe */ + + close(pipefd[0]); /* Close unused read end */ + dup2(pipefd[1],1); + execve(espeakpath,newargv,envp); + perror(espeakpath); + close(pipefd[1]); /* Reader will see EOF */ + wait(NULL); /* Wait for child */ + exit(EXIT_SUCCESS); + + } else { /* Parent read from pipe */ + + close(pipefd[1]); /* Close unused write end */ + + l=read(pipefd[0],bufi,64); + if(memcmp(bufi,"RIFF",4)) + { + while(l>0) + { + write(1,bufi,l); + l=read(pipefd[0],bufi,IBUFFERLEN); + } + exit(EXIT_SUCCESS); + } + l=read(pipefd[0],bufi,IBUFFERLEN); + + fh=open("/dev/dsp",O_WRONLY); + if(fh<0) + { + perror("open /dev/dsp"); + exit(EXIT_FAILURE); + } + ioctl(fh, SNDCTL_DSP_SPEED , &rate); + ioctl(fh, SNDCTL_DSP_SYNC, 0); + while(l) + { + for(co=0,wp=0;(costereo */ + bufo[wp++]=bufi[co]; + } + write (fh,bufo,wp); + l=read(pipefd[0],bufi,IBUFFERLEN); + } + ioctl(fh, SNDCTL_DSP_SYNC, 0); + close(pipefd[0]); + exit(EXIT_SUCCESS); + } +} -- cgit v1.2.1 From 7782ba30130fb0aadb6ffea1596b29560796fdf2 Mon Sep 17 00:00:00 2001 From: mvglasow Date: Tue, 31 Jan 2017 01:41:36 +0100 Subject: Fix:port/android:Fix "invalid DT_NEEDED" warnings on API 23+, fixes #1348 Signed-off-by: mvglasow --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d154e1e6c..e2b869203 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -600,9 +600,6 @@ if (SAMPLE_MAP) endif(SAMPLE_MAP) if(ANDROID) - # for android API 3 compatiblity - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,/data/data/org.navitproject.navit/lib/") - find_program(ANDROID_LOCATION NAMES android android.bat) find_program(ANT_LOCATION NAMES ant) if (NOT ANT_LOCATION) -- cgit v1.2.1 From b30bfeb26efd8fc95ecc3745d3ad4ecc46b0b2a0 Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 20 Feb 2017 02:19:39 +0100 Subject: sunrise near poles simplification (#206) * sunrise near poles simplification * Update navit.c --- navit/navit.c | 100 ++++++++++++++++++++++++++++------------------------------ 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/navit/navit.c b/navit/navit.c index 9e4ea421b..3f4678032 100644 --- a/navit/navit.c +++ b/navit/navit.c @@ -3403,61 +3403,59 @@ navit_layout_switch(struct navit *n) if (l->dayname || l->nightname) { //Ok, we know that we have profile to switch - //Check that we aren't calculating too fast - if (vehicle_get_attr(n->vehicle->vehicle, attr_position_time_iso8601,&iso8601_attr,NULL)==1) { - currTs=iso8601_to_secs(iso8601_attr.u.str); - dbg(lvl_debug,"currTs: %u:%u\n",currTs%86400/3600,((currTs%86400)%3600)/60); - } - dbg(lvl_debug,"prevTs: %u:%u\n",n->prevTs%86400/3600,((n->prevTs%86400)%3600)/60); - if (currTs-(n->prevTs)<60) { - //We've have to wait a little - return; - } - if (n->auto_switch == FALSE) - return; - if (sscanf(iso8601_attr.u.str,"%d-%02d-%02dT",&year,&month,&day) != 3) - return; - if (vehicle_get_attr(n->vehicle->vehicle, attr_position_valid, &valid_attr,NULL) && valid_attr.u.num==attr_position_valid_invalid) { - return; //No valid fix yet - } - if (vehicle_get_attr(n->vehicle->vehicle, attr_position_coord_geo,&geo_attr,NULL)!=1) { + //Check that we aren't calculating too fast + if (vehicle_get_attr(n->vehicle->vehicle, attr_position_time_iso8601,&iso8601_attr,NULL)==1) { + currTs=iso8601_to_secs(iso8601_attr.u.str); + dbg(lvl_debug,"currTs: %u:%u\n",currTs%86400/3600,((currTs%86400)%3600)/60); + } + dbg(lvl_debug,"prevTs: %u:%u\n",n->prevTs%86400/3600,((n->prevTs%86400)%3600)/60); + + if (n->auto_switch == FALSE) + return; + + if (currTs-(n->prevTs)<60) { + //We've have to wait a little + return; + } + + if (sscanf(iso8601_attr.u.str,"%d-%02d-%02dT",&year,&month,&day) != 3) + return; + if (vehicle_get_attr(n->vehicle->vehicle, attr_position_valid, &valid_attr,NULL) && valid_attr.u.num==attr_position_valid_invalid) { + return; //No valid fix yet + } + if (vehicle_get_attr(n->vehicle->vehicle, attr_position_coord_geo,&geo_attr,NULL)!=1) { //No position - no sun return; - } - //We calculate sunrise anyway, cause it is needed both for day and for night - if (__sunriset__(year,month,day,geo_attr.u.coord_geo->lng,geo_attr.u.coord_geo->lat,-5,1,&trise,&tset)!=0) { - //near the pole sun never rises/sets, so we should never switch profiles - dbg(lvl_debug,"trise: %u:%u, sun never visible, never switch profile\n",HOURS(trise),MINUTES(trise)); - n->prevTs=currTs; - return; } - trise_actual=trise; - dbg(lvl_debug,"trise: %u:%u\n",HOURS(trise),MINUTES(trise)); - dbg(lvl_debug,"dayname = %s, name =%s \n",l->dayname, l->name); - if (HOURS(trise)*60+MINUTES(trise)<(currTs%86400)/60) { - after_sunrise = TRUE; - } - dbg(lvl_debug,"nightname = %s, name = %s \n",l->nightname, l->name); - if (__sunriset__(year,month,day,geo_attr.u.coord_geo->lng,geo_attr.u.coord_geo->lat,-5,1,&trise,&tset)!=0) { - //near the pole sun never rises/sets, so we should never switch profiles - dbg(lvl_debug,"tset: %u:%u, sun always visible, never switch profile\n",HOURS(tset),MINUTES(tset)); - n->prevTs=currTs; - return; - } - dbg(lvl_debug,"tset: %u:%u\n",HOURS(tset),MINUTES(tset)); - if (((HOURS(tset)*60+MINUTES(tset)<(currTs%86400)/60)) || - ((HOURS(trise_actual)*60+MINUTES(trise_actual)>(currTs%86400)/60))) { - after_sunset = TRUE; - } - if (after_sunrise && !after_sunset && l->dayname) { - navit_set_layout_by_name(n,l->dayname); + //We calculate sunrise anyway, cause it is needed both for day and for night + if (__sunriset__(year,month,day,geo_attr.u.coord_geo->lng,geo_attr.u.coord_geo->lat,-5,1,&trise,&tset)!=0) { + dbg(lvl_debug,"near the pole sun never rises/sets, so we should never switch profiles\n"); + dbg(lvl_debug,"trise: %u:%u\n",HOURS(trise),MINUTES(trise)); + dbg(lvl_debug,"tset: %u:%u\n",HOURS(tset),MINUTES(tset)); + n->prevTs=currTs; + return; + } + trise_actual=trise; + dbg(lvl_debug,"trise: %u:%u\n",HOURS(trise),MINUTES(trise)); + dbg(lvl_debug,"tset: %u:%u\n",HOURS(tset),MINUTES(tset)); + dbg(lvl_debug,"dayname = %s, name =%s \n",l->dayname, l->name); + dbg(lvl_debug,"nightname = %s, name = %s \n",l->nightname, l->name); + if (HOURS(trise)*60+MINUTES(trise)<(currTs%86400)/60) { + after_sunrise = TRUE; + } + + if (((HOURS(tset)*60+MINUTES(tset)<(currTs%86400)/60)) || + ((HOURS(trise_actual)*60+MINUTES(trise_actual)>(currTs%86400)/60))) { + after_sunset = TRUE; + } + if (after_sunrise && !after_sunset && l->dayname) { + navit_set_layout_by_name(n,l->dayname); dbg(lvl_debug,"layout set to day\n"); - } - else if (after_sunset && l->nightname) { - navit_set_layout_by_name(n,l->nightname); - dbg(lvl_debug,"layout set to night\n"); - } - n->prevTs=currTs; + }else if (after_sunset && l->nightname) { + navit_set_layout_by_name(n,l->nightname); + dbg(lvl_debug,"layout set to night\n"); + } + n->prevTs=currTs; } } -- cgit v1.2.1 From 1b52df83672a0b7a730d89fa3258bec630e1e24f Mon Sep 17 00:00:00 2001 From: jandegr Date: Mon, 20 Feb 2017 02:20:37 +0100 Subject: removed autotools lefotover (#204) --- navit/android/AndroidManifest.xml.in | 37 ------------------------------------ 1 file changed, 37 deletions(-) delete mode 100644 navit/android/AndroidManifest.xml.in diff --git a/navit/android/AndroidManifest.xml.in b/navit/android/AndroidManifest.xml.in deleted file mode 100644 index 085276623..000000000 --- a/navit/android/AndroidManifest.xml.in +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.1 From e80c3634788ac4f5440a5e92178488a5beb9438a Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Mon, 20 Feb 2017 06:35:53 -0800 Subject: Added automatic publishing to Playstore Beta --- ci/basic_upload_apks.py | 82 +++++++++++++++++++++++++++++++++++++++++++++++++ ci/publish.sh | 10 ++++++ circle.yml | 5 +++ 3 files changed, 97 insertions(+) create mode 100644 ci/basic_upload_apks.py create mode 100644 ci/publish.sh diff --git a/ci/basic_upload_apks.py b/ci/basic_upload_apks.py new file mode 100644 index 000000000..b4b439536 --- /dev/null +++ b/ci/basic_upload_apks.py @@ -0,0 +1,82 @@ +#!/usr/bin/python +# +# Copyright 2014 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the 'License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Uploads an apk to the beta track.""" + +import argparse +import sys +from apiclient import sample_tools +from oauth2client import client + +TRACK = 'beta' # Can be 'alpha', beta', 'production' or 'rollout' + +# Declare command-line flags. +argparser = argparse.ArgumentParser(add_help=False) +argparser.add_argument('package_name', + help='The package name. Example: com.android.sample') +argparser.add_argument('apk_file', + nargs='?', + default='test.apk', + help='The path to the APK file to upload.') + + +def main(argv): + # Authenticate and construct service. + service, flags = sample_tools.init( + argv, + 'androidpublisher', + 'v2', + __doc__, + __file__, parents=[argparser], + scope='https://www.googleapis.com/auth/androidpublisher') + + # Process flags and read their values. + package_name = flags.package_name + apk_file = flags.apk_file + + try: + edit_request = service.edits().insert(body={}, packageName=package_name) + result = edit_request.execute() + edit_id = result['id'] + + apk_response = service.edits().apks().upload( + editId=edit_id, + packageName=package_name, + media_body=apk_file).execute() + + print 'Version code %d has been uploaded' % apk_response['versionCode'] + + track_response = service.edits().tracks().update( + editId=edit_id, + track=TRACK, + packageName=package_name, + body={u'versionCodes': [apk_response['versionCode']]}).execute() + + print 'Track %s is set for version code(s) %s' % ( + track_response['track'], str(track_response['versionCodes'])) + + commit_request = service.edits().commit( + editId=edit_id, packageName=package_name).execute() + + print 'Edit "%s" has been committed' % (commit_request['id']) + + except client.AccessTokenRefreshError: + print ('The credentials have been revoked or expired, please re-run the ' + 'application to re-authorize') + +if __name__ == '__main__': + main(sys.argv) + diff --git a/ci/publish.sh b/ci/publish.sh new file mode 100644 index 000000000..e38abd164 --- /dev/null +++ b/ci/publish.sh @@ -0,0 +1,10 @@ +cd ~/ +git clone git@github.com:navit-gps/infrastructure-blackbox.git +cd infrastructure-blackbox/ +openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore +openssl aes-256-cbc -d -in clientsecret.gpg -k $KEY > client_secrets.json +openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat + +jarsigner -storepass $SP $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name +/usr/local/android-sdk-linux/build-tools/25.0.1/zipalign 4 $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk +python ~/navit/ci/basic_upload_apks.py org.navitproject.navit $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk diff --git a/circle.yml b/circle.yml index 6fa1ccc22..9321c75b1 100644 --- a/circle.yml +++ b/circle.yml @@ -30,6 +30,11 @@ test: files: - ci/build_*.sh deployment: + publish_to_playstore: + branch: master + owner: navit-gps + commands: + - bash ci/publish.sh merge_into_master: branch: trunk owner: navit-gps -- cgit v1.2.1 From 5198c964dca9fb08303c1bbcbe7139de7848a309 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Mon, 20 Feb 2017 06:38:23 -0800 Subject: Fixed keyrings path --- ci/publish.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/publish.sh b/ci/publish.sh index e38abd164..3d1fd3470 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -1,6 +1,6 @@ cd ~/ git clone git@github.com:navit-gps/infrastructure-blackbox.git -cd infrastructure-blackbox/ +cd infrastructure-blackbox/keyrings/ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore openssl aes-256-cbc -d -in clientsecret.gpg -k $KEY > client_secrets.json openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat -- cgit v1.2.1 From 64a9f04f076cf2b94341c412a73c9b45d6090f93 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Mon, 20 Feb 2017 07:43:40 -0800 Subject: Ensures that google-api-python-client is installed for apk publishing --- ci/publish.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/publish.sh b/ci/publish.sh index 3d1fd3470..5b1a40433 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -5,6 +5,8 @@ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore openssl aes-256-cbc -d -in clientsecret.gpg -k $KEY > client_secrets.json openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat +pip install google-api-python-client + jarsigner -storepass $SP $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name /usr/local/android-sdk-linux/build-tools/25.0.1/zipalign 4 $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk python ~/navit/ci/basic_upload_apks.py org.navitproject.navit $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk -- cgit v1.2.1 From b175bb87b30124153ac28a1584789c3148373876 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Mon, 20 Feb 2017 08:15:35 -0800 Subject: Fixed Store client_secrets path --- ci/publish.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/publish.sh b/ci/publish.sh index 5b1a40433..06f5b147b 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -2,7 +2,7 @@ cd ~/ git clone git@github.com:navit-gps/infrastructure-blackbox.git cd infrastructure-blackbox/keyrings/ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore -openssl aes-256-cbc -d -in clientsecret.gpg -k $KEY > client_secrets.json +openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > client_secrets.json openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat pip install google-api-python-client -- cgit v1.2.1 From 7d4008ea08e27cf30879ed15238cab1c8d08fb7a Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Tue, 21 Feb 2017 06:34:09 -0800 Subject: Extract publishing credentials in the right folder --- ci/publish.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/publish.sh b/ci/publish.sh index 06f5b147b..c787453f7 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -2,8 +2,8 @@ cd ~/ git clone git@github.com:navit-gps/infrastructure-blackbox.git cd infrastructure-blackbox/keyrings/ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore -openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > client_secrets.json -openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat +openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > ~/navit/ci/client_secrets.json +openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > ~/navit/ci/androidpublisher.dat pip install google-api-python-client -- cgit v1.2.1 From e695def8031c8defd17c8d4beae94427cb4427fd Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Tue, 21 Feb 2017 07:33:13 -0800 Subject: Extract android publishing credentials to current folder --- ci/publish.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/publish.sh b/ci/publish.sh index c787453f7..a6d35ebdc 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -3,7 +3,7 @@ git clone git@github.com:navit-gps/infrastructure-blackbox.git cd infrastructure-blackbox/keyrings/ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > ~/navit/ci/client_secrets.json -openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > ~/navit/ci/androidpublisher.dat +openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat pip install google-api-python-client -- cgit v1.2.1 From c9c0eea7e768a7e4407db35610d58c9522fb61ef Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Tue, 21 Feb 2017 14:02:42 -0800 Subject: Ensure that we use jarsigner w/ jdk 1.8 --- ci/publish.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/publish.sh b/ci/publish.sh index a6d35ebdc..2f880f339 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -7,6 +7,6 @@ openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat pip install google-api-python-client -jarsigner -storepass $SP $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name +/usr/lib/jvm/java-8-openjdk-amd64/bin/jarsigner -storepass $SP $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name /usr/local/android-sdk-linux/build-tools/25.0.1/zipalign 4 $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk python ~/navit/ci/basic_upload_apks.py org.navitproject.navit $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk -- cgit v1.2.1 From 8363731af73d71afec3aad1c6145f759570e3e7f Mon Sep 17 00:00:00 2001 From: Cedric PAILLE Date: Thu, 23 Feb 2017 15:30:04 +0100 Subject: add:graphics:RaspberryPI hardware accelerated graphics support (#208) * cleanup * Renamed rpi to egl + polygon filling method and lot of fixes * Fix overlay crash * Cleanup --- CMakeLists.txt | 10 + navit/graphics/egl/CMakeLists.txt | 2 + navit/graphics/egl/graphics_egl.c | 1458 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1470 insertions(+) create mode 100644 navit/graphics/egl/CMakeLists.txt create mode 100644 navit/graphics/egl/graphics_egl.c diff --git a/CMakeLists.txt b/CMakeLists.txt index e2b869203..926fcb8b2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,7 @@ add_module(graphics/gd "FreeType library not found" FALSE) add_module(graphics/gtk_drawing_area "FreeType library not found" FALSE) add_module(graphics/opengl "FreeType library not found" FALSE) add_module(graphics/sdl "Required library not found" FALSE) +add_module(graphics/egl "Required library not found" FALSE) add_module(graphics/qt_qpainter "Qt libraries not found" FALSE) add_module(gui/qml "Qt Declarative not found" FALSE) add_module(gui/gtk "GTK libs not found" FALSE) @@ -136,6 +137,9 @@ find_package(Glib) find_package(Gmodule) find_package(ZLIB) find_package(Freetype) +find_library(SDL2MAIN SDL2) +find_library(SDL2IMAGE SDL2_image) +find_library(GLES2 GLESv2) find_package(SDL) find_package(SDL_ttf) find_package(SDL_image) @@ -274,6 +278,7 @@ else(FREETYPE_FOUND) set_with_reason(graphics/gtk_drawing_area "FreeType library not found" FALSE) set_with_reason(graphics/opengl "FreeType library not found" FALSE) set_with_reason(graphics/sdl "FreeType library not found" FALSE) + set_with_reason(graphics/egl "FreeType library not found" FALSE) endif(FREETYPE_FOUND) if(FONTCONFIG_FOUND) @@ -346,6 +351,11 @@ if(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND) set_with_reason(graphics/sdl "SDL/SDL_image libs found" TRUE ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY}) endif(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND) +if(SDL2MAIN AND SDL2IMAGE AND GLES2) + set_with_reason(graphics/egl "SDL2/SDL2_image libs found" TRUE ${SDL2MAIN} ${SDL2IMAGE} ${GLES2}) + message(STATUS "EGL libs found : ${SDL2MAIN} ${SDL2IMAGE} ${GLES2}") +endif(SDL2_FOUND AND SDL2IMAGE_FOUND AND GLES2) + if (LIBGPS_FOUND) if (LIBGPS_NEW_FOUND) set(VEHICLE_GPSD_REASON "gpsd lib found") diff --git a/navit/graphics/egl/CMakeLists.txt b/navit/graphics/egl/CMakeLists.txt new file mode 100644 index 000000000..1943f2bc0 --- /dev/null +++ b/navit/graphics/egl/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(graphics_egl graphics_egl.c) + diff --git a/navit/graphics/egl/graphics_egl.c b/navit/graphics/egl/graphics_egl.c new file mode 100644 index 000000000..4d7780ff4 --- /dev/null +++ b/navit/graphics/egl/graphics_egl.c @@ -0,0 +1,1458 @@ +/** + * Navit, a modular navigation system. + * Copyright (C) 2005-2010 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include + +#include + +#include "item.h" +#include "attr.h" +#include "config.h" +#include "point.h" +#include "graphics.h" +#include "color.h" +#include "plugin.h" +#include "event.h" +#include "debug.h" +#include "callback.h" +#include "keys.h" +#include "window.h" +#include "navit/font/freetype/font_freetype.h" + +#include +#include +#include + +/* + * This is work in progress * + * Remainng issues : + * - SDL mouse cursor sometimes raise an SDL assertion + * - Dashed lines to implement + * - Full Keyboard handling +*/ + +#define SCREEN_WIDTH 800 +#define SCREEN_HEIGHT 600 + +#define glF(x) x +#define glD(x) x +#define GL_F GL_FLOAT +typedef GLfloat GLf; + +struct graphics_gc_priv { + struct graphics_priv *gr; + float fr, fg, fb, fa; + float br, bg, bb, ba; + int linewidth; + unsigned char *dash_list; + int dash_count; + int dash_mask; +} graphics_gc_priv; + +struct graphics_priv { + int fill_poly; + int show_overlays; + int button_timeout; + struct point p; + int width; + int height; + int library_init; + int visible; + int overlay_enabled; + int overlay_autodisabled; + int wraparound; + GLuint framebuffer_name; + GLuint overlay_texture; + struct graphics_priv *parent; + struct graphics_priv *overlays; + struct graphics_priv *next; + struct graphics_gc_priv *background_gc; + enum draw_mode_num mode; + GLuint program; + GLint mvp_location, position_location, color_location, texture_position_location, use_texture_location, texture_location; + struct callback_list *cbl; + struct font_freetype_methods freetype_methods; + struct navit *nav; + int timeout; + int delay; + struct window window; + int dirty; //display needs to be redrawn (draw on root graphics or overlay is done) + int force_redraw; //display needs to be redrawn (draw on root graphics or overlay is done) + time_t last_refresh_time; //last display refresh time + struct graphics_opengl_platform *platform; + struct graphics_opengl_platform_methods *platform_methods; +}; + +struct graphics_image_priv { + SDL_Surface *img; +} graphics_image_priv; + + +struct graphics_opengl_platform { + SDL_Window* eglwindow; + SDL_GLContext eglcontext; + EGLDisplay egldisplay; + EGLConfig config[1]; +}; + +struct contour +{ + struct point *p; + unsigned int count; +}; + +static GHashTable *hImageData; +static int USERWANTSTOQUIT = 0; +static struct graphics_priv *graphics_priv_root; +static struct graphics_priv *graphics_opengl_new_helper(struct + graphics_methods + *meth); + +/* + * GLES 2 Compatible vertex and fragment shaders + * Taken from opengl driver + */ +const char vertex_src [] = +" \ + attribute vec2 position; \ + attribute vec2 texture_position; \ + uniform mat4 mvp; \ + varying vec2 v_texture_position; \ + \ + void main() \ + { \ + v_texture_position=texture_position; \ + gl_Position = mvp*vec4(position, 0.0, 1.0); \ + } \ +"; + +const char fragment_src [] = +" \ + uniform lowp vec4 avcolor; \ + uniform sampler2D texture; \ + uniform bool use_texture; \ + varying vec2 v_texture_position; \ + void main() \ + { \ + if (use_texture) { \ + gl_FragColor = texture2D(texture, v_texture_position); \ + } else { \ + gl_FragColor = avcolor; \ + } \ + } \ +"; + +/* +* C conversion of Efficient Polygon Triangulation +* Found at http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml +* Adapted and debugged for this use +*/ +float area(const struct contour* contour) +{ + int p, q; + int n = contour->count - 1; + float A = 0.f; + + for (p=n-1, q=0; q < n; p=q++) + { + A += contour->p[p].x * contour->p[q].y - contour->p[q].x * contour->p[p].y; + } + return A * .5f; +} + +int +inside_triangle(float Ax, float Ay, + float Bx, float By, + float Cx, float Cy, + float Px, float Py) +{ + float ax, ay, bx, by, cx, cy, apx, apy, bpx, bpy, cpx, cpy; + float cCROSSap, bCROSScp, aCROSSbp; + + ax = Cx - Bx; ay = Cy - By; + bx = Ax - Cx; by = Ay - Cy; + cx = Bx - Ax; cy = By - Ay; + apx= Px - Ax; apy= Py - Ay; + bpx= Px - Bx; bpy= Py - By; + cpx= Px - Cx; cpy= Py - Cy; + + aCROSSbp = ax*bpy - ay*bpx; + cCROSSap = cx*apy - cy*apx; + bCROSScp = bx*cpy - by*cpx; + + return ((aCROSSbp >= 0.0f) && (bCROSScp >= 0.0f) && (cCROSSap >= 0.0f)); +} + +int +snip(const struct point* pnt,int u,int v,int w,int n,int *V) +{ + int p; + float Ax, Ay, Bx, By, Cx, Cy, Px, Py; + + Ax = pnt[V[u]].x; + Ay = pnt[V[u]].y; + + Bx = pnt[V[v]].x; + By = pnt[V[v]].y; + + Cx = pnt[V[w]].x; + Cy = pnt[V[w]].y; + + if ( (((Bx-Ax)*(Cy-Ay)) - ((By-Ay)*(Cx-Ax))) < 0.f ) + return 0; + + for (p=0;pcount - 1; + int polygon_temp_size = contour_size * 80; + int final_count = 0; + result->p = malloc(sizeof(struct point) * polygon_temp_size); + + int n = contour_size; + if ( n < 3 ) return 0; + + int *V = alloca(sizeof(int)*n); + + if ( 0.0f < area(contour) ) + for (v=0; v2; ) + { + /* if we loop, it is probably a non-simple polygon */ + if (0 >= (count--)) + { + //** Triangulate: ERROR - probable bad polygon! + break; + } + + /* three consecutive vertices in current polygon, */ + int u = v ; if (nv <= u) u = 0; /* previous */ + v = u+1; if (nv <= v) v = 0; /* new v */ + int w = v+1; if (nv <= w) w = 0; /* next */ + + if ( snip(contour->p,u,v,w,nv,V) ) + { + int a,b,c,s,t; + + /* true names of the vertices */ + a = V[u]; b = V[v]; c = V[w]; + + /* output Triangle */ + result->p[final_count++] = contour->p[a]; + result->p[final_count++] = contour->p[b]; + result->p[final_count++] = contour->p[c]; + + if (final_count >= polygon_temp_size){ + free(result->p); + return 0; + } + + /* remove v from remaining polygon */ + for(s=v,t=v+1;tcount = final_count; + + return 1; +} + +// ** Efficient Polygon Triangulation ** + +/* + * Destroys SDL/EGL context + */ +static void +sdl_egl_destroy(struct graphics_opengl_platform *egl) +{ + if (egl->eglwindow){ + SDL_GL_DeleteContext(egl->eglcontext); + SDL_DestroyWindow(egl->eglwindow); + } + g_free(egl); + SDL_Quit(); +} + +/* + * Swap EGL buffer + */ +static void +sdl_egl_swap_buffers(struct graphics_opengl_platform *egl) +{ + SDL_GL_SwapWindow(egl->eglwindow); +} + +/* + * Main graphic destroy + */ +static void +graphics_destroy(struct graphics_priv *gr) +{ + /*FIXME graphics_destroy is never called */ + gr->freetype_methods.destroy(); + g_free(gr); + gr = NULL; + sdl_egl_destroy(gr->platform); + SDL_Quit(); +} + +static void +gc_destroy(struct graphics_gc_priv *gc) +{ + g_free(gc); + gc = NULL; +} + +static void +gc_set_linewidth(struct graphics_gc_priv *gc, int w) +{ + gc->linewidth = w; +} + +static void +gc_set_dashes(struct graphics_gc_priv *gc, int width, int offset, + unsigned char *dash_list, int n) +{ + int i; + const int cOpenglMaskBits = 16; + gc->dash_count = n; + if (1 == n) { + gc->dash_mask = 0; + for (i = 0; i < cOpenglMaskBits; ++i) { + gc->dash_mask <<= 1; + gc->dash_mask |= (i / n) % 2; + } + } else if (1 < n) { + unsigned char *curr = dash_list; + int cnt = 0; //dot counter + int dcnt = 0; //dash element counter + int sum_dash = 0; + gc->dash_mask = 0; + + for (i = 0; i < n; ++i) { + sum_dash += dash_list[i]; + } + + //scale dashlist elements to max size + if (sum_dash > cOpenglMaskBits) { + int num_error[2] = { 0, 0 }; //count elements rounded to 0 for odd(drawn) and even(masked) for compensation + double factor = (1.0 * cOpenglMaskBits) / sum_dash; + for (i = 0; i < n; ++i) { //calculate dashlist max and largest common denomiator for scaling + dash_list[i] *= factor; + if (dash_list[i] == 0) { + ++dash_list[i]; + ++num_error[i % 2]; + } else if (0 < num_error[i % 2] + && 2 < dash_list[i]) { + ++dash_list[i]; + --num_error[i % 2]; + } + } + } + //calculate mask + for (i = 0; i < cOpenglMaskBits; ++i) { + gc->dash_mask <<= 1; + gc->dash_mask |= 1 - dcnt % 2; + ++cnt; + if (cnt == *curr) { + cnt = 0; + ++curr; + ++dcnt; + if (dcnt == n) { + curr = dash_list; + } + } + } + } +} + + +static void +gc_set_foreground(struct graphics_gc_priv *gc, struct color *c) +{ + gc->fr = c->r / 65535.0; + gc->fg = c->g / 65535.0; + gc->fb = c->b / 65535.0; + gc->fa = c->a / 65535.0; +} + +static void +gc_set_background(struct graphics_gc_priv *gc, struct color *c) +{ + gc->br = c->r / 65535.0; + gc->bg = c->g / 65535.0; + gc->bb = c->b / 65535.0; + gc->ba = c->a / 65535.0; +} + +static struct graphics_gc_methods gc_methods = { + gc_destroy, + gc_set_linewidth, + gc_set_dashes, + gc_set_foreground, + gc_set_background +}; + +static struct graphics_gc_priv * +gc_new(struct graphics_priv *gr, struct graphics_gc_methods *meth) +{ + struct graphics_gc_priv *gc = g_new0(struct graphics_gc_priv, 1); + + *meth = gc_methods; + gc->gr = gr; + gc->linewidth = 1; + return gc; +} + +static struct graphics_image_priv image_error; + +static struct graphics_image_priv * +image_new(struct graphics_priv *gr, struct graphics_image_methods *meth, char *name, int *w, int *h, + struct point *hot, int rotation) +{ + struct graphics_image_priv *gi; + + /* FIXME: meth is not used yet.. so gi leaks. at least xpm is small */ + + struct graphics_image_priv *curr_elem = + g_hash_table_lookup(hImageData, name); + + if (curr_elem == &image_error) { + //found but couldn't be loaded + return NULL; + } else if (curr_elem) { + //found and OK -> use hastable entry + *w = curr_elem->img->w; + *h = curr_elem->img->h; + hot->x = *w / 2; + hot->y = *h / 2; + return curr_elem; + } + + if (strlen(name) < 4) { + g_hash_table_insert(hImageData, g_strdup(name), + &image_error); + return NULL; + } + + gi = g_new0(struct graphics_image_priv, 1); + gi->img = IMG_Load(name); + if(gi->img) + { + *w=gi->img->w; + *h=gi->img->h; + hot->x=*w/2; + hot->y=*h/2; + } + else + { + /* TODO: debug "colour parse errors" on xpm */ + dbg(lvl_error,"image_new on '%s' failed: %s\n", name, IMG_GetError()); + g_free(gi); + gi = NULL; + g_hash_table_insert(hImageData, + g_strdup(name), + &image_error); + return gi; + } + + g_hash_table_insert(hImageData, g_strdup(name), gi); + return gi; +} + +static void +image_free(struct graphics_priv *gr, struct graphics_image_priv * gi) +{ +// SDL_FreeSurface(gi->img); +// g_free(gi); +} + +static void +set_color(struct graphics_priv *gr, struct graphics_gc_priv *gc) +{ + GLfloat col[4]; + col[0]=gc->fr; + col[1]=gc->fg; + col[2]=gc->fb; + col[3]=gc->fa; + glUniform4fv(gr->color_location, 1, col); +} + +static void +draw_array(struct graphics_priv *gr, struct point *p, int count, GLenum mode) +{ + int i; + GLf *x;//[count*2]; + x = alloca(sizeof(GLf)*count*2); + for (i = 0 ; i < count ; i++) { + x[i*2]=glF(p[i].x); + x[i*2+1]=glF(p[i].y); + } + + glVertexAttribPointer (gr->position_location, 2, GL_FLOAT, 0, 0, x ); + glDrawArrays(mode, 0, count); +} + +static void +draw_rectangle_do(struct graphics_priv *gr, struct point *p, int w, int h) +{ + struct point pa[4]; + pa[0]=pa[1]=pa[2]=pa[3]=*p; + pa[0].x+=w; + pa[1].x+=w; + pa[1].y+=h; + pa[3].y+=h; + draw_array(gr, pa, 4, GL_TRIANGLE_STRIP); +} + + +static void +draw_image_es(struct graphics_priv *gr, struct point *p, int w, int h, unsigned char *data) +{ + GLf x[8]; + GLuint texture; + memset(x, 0, sizeof(x)); + + glGenTextures(1, &texture); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + + x[0]+=glF(1); + x[2]+=glF(1); + x[3]+=glF(1); + x[7]+=glF(1); + glUniform1i(gr->use_texture_location, 1); + glEnableVertexAttribArray(gr->texture_position_location); + glVertexAttribPointer (gr->texture_position_location, 2, GL_FLOAT, 0, 0, x ); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + draw_rectangle_do(gr, p, w, h); + + glUniform1i(gr->use_texture_location, 0); + glDisableVertexAttribArray(gr->texture_position_location); + + glDisable(GL_BLEND); + glDeleteTextures(1, &texture); +} + +inline void +get_overlay_pos(struct graphics_priv *gr, struct point *point_out) +{ + if (gr->parent == NULL) { + point_out->x = 0; + point_out->y = 0; + return; + } + point_out->x = gr->p.x; + if (point_out->x < 0) { + point_out->x += gr->parent->width; + } + + point_out->y = gr->p.y; + if (point_out->y < 0) { + point_out->y += gr->parent->height; + } +} + +inline void +draw_overlay(struct graphics_priv *gr) +{ + struct point p_eff; + GLf x[8]; + + get_overlay_pos(gr, &p_eff); + + memset(x, 0, 8*sizeof(GLf)); + x[0]+=glF(1); + x[1]+=glF(1); + x[2]+=glF(1); + x[5]+=glF(1); + + glUniform1i(gr->use_texture_location, 1); + glEnableVertexAttribArray(gr->texture_position_location); + glVertexAttribPointer (gr->texture_position_location, 2, GL_FLOAT, 0, 0, x); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBindTexture(GL_TEXTURE_2D, gr->overlay_texture); + + draw_rectangle_do(graphics_priv_root, &p_eff, gr->width, gr->height); + + glUniform1i(gr->use_texture_location, 0); + glDisableVertexAttribArray(gr->texture_position_location); + + glDisable(GL_BLEND); +} + +static void +draw_lines(struct graphics_priv *gr, struct graphics_gc_priv *gc, + struct point *p, int count) +{ + if ((gr->parent && !gr->parent->overlay_enabled) + || (gr->parent && gr->parent->overlay_enabled + && !gr->overlay_enabled)) { + return; + } + + glLineWidth(gc->linewidth); + + set_color(gr, gc); + graphics_priv_root->dirty = 1; + + draw_array(gr, p, count, GL_LINE_STRIP); +} + + +static void +draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, + struct point *p, int count) +{ + int ok; + if ((gr->parent && !gr->parent->overlay_enabled) + || (gr->parent && gr->parent->overlay_enabled + && !gr->overlay_enabled)) { + return; + } + set_color(gr, gc); + graphics_priv_root->dirty = 1; + struct contour contour, result; + contour.count = count; + contour.p = p; + ok = process_triangles(&contour, &result); + if (ok && gr->fill_poly){ + draw_array(gr, result.p, result.count, GL_TRIANGLES); + free(result.p); + } else { + draw_array(gr, p, count, GL_LINE_STRIP); + } +} + +static void +draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, + struct point *p, int w, int h) +{ + if ((gr->parent && !gr->parent->overlay_enabled) + || (gr->parent && gr->parent->overlay_enabled + && !gr->overlay_enabled)) { + return; + } + set_color(gr, gc); + draw_rectangle_do(gr, p, w, h); + graphics_priv_root->dirty = 1; +} + +static void +display_text_draw(struct font_freetype_text *text, + struct graphics_priv *gr, struct graphics_gc_priv *fg, + struct graphics_gc_priv *bg, int color, struct point *p) +{ + int i, x, y, stride; + struct font_freetype_glyph *g, **gp; + unsigned char *shadow, *glyph; + struct color transparent = { 0x0000, 0x0000, 0x0000, 0x0000 }; + struct color black = + { fg->fr * 65535, fg->fg * 65535, fg->fb * 65535, + fg->fa * 65535 }; + struct color white = { 0xffff, 0xffff, 0xffff, 0xffff }; + + if (bg) { + if (COLOR_IS_WHITE(black) && COLOR_IS_BLACK(white)) { + black.r = 65535; + black.g = 65535; + black.b = 65535; + black.a = 65535; + + white.r = 0; + white.g = 0; + white.b = 0; + white.a = 65535; + } else if (COLOR_IS_BLACK(black) && COLOR_IS_WHITE(white)) { + white.r = 65535; + white.g = 65535; + white.b = 65535; + white.a = 65535; + + black.r = 0; + black.g = 0; + black.b = 0; + black.a = 65535; + } else { + white.r = bg->fr; + white.g = bg->fg; + white.b = bg->fb; + white.a = bg->fa; + } + } else { + white.r = 0; + white.g = 0; + white.b = 0; + white.a = 0; + } + + gp = text->glyph; + i = text->glyph_count; + x = p->x << 6; + y = p->y << 6; + while (i-- > 0) { + g = *gp++; + if (g->w && g->h && bg) { + stride = (g->w + 2) * 4; + if (color) { + shadow = g_malloc(stride * (g->h + 2)); + gr->freetype_methods.get_shadow(g, shadow, + stride, + &white, + &transparent); + + struct point p; + p.x=((x + g->x) >> 6)-1; + p.y=((y + g->y) >> 6)-1; + draw_image_es(gr, &p, g->w+2, g->h+2, shadow); + + g_free(shadow); + } + } + x += g->dx; + y += g->dy; + } + + x = p->x << 6; + y = p->y << 6; + gp = text->glyph; + i = text->glyph_count; + while (i-- > 0) { + g = *gp++; + if (g->w && g->h) { + if (color) { + stride = g->w; + if (bg) { + glyph = + g_malloc(stride * g->h * 4); + gr->freetype_methods.get_glyph(g, + glyph, + stride + * 4, + &black, + &white, + &transparent); + struct point p; + p.x=(x + g->x) >> 6; + p.y=(y + g->y) >> 6; + draw_image_es(gr, &p, g->w, g->h, glyph); + + g_free(glyph); + } + stride *= 4; + glyph = g_malloc(stride * g->h); + gr->freetype_methods.get_glyph(g, glyph, + stride, + &black, + &white, + &transparent); + struct point p; + p.x=(x + g->x) >> 6; + p.y=(y + g->y) >> 6; + draw_image_es(gr, &p, g->w, g->h, glyph); + + g_free(glyph); + } + } + x += g->dx; + y += g->dy; + } +} + +static void +draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, + struct graphics_gc_priv *bg, struct graphics_font_priv *font, + char *text, struct point *p, int dx, int dy) +{ + if ((gr->parent && !gr->parent->overlay_enabled) + || (gr->parent && gr->parent->overlay_enabled + && !gr->overlay_enabled)) { + return; + } + + struct font_freetype_text *t; + int color = 1; + + if (!font) { + dbg(lvl_error, "no font, returning\n"); + return; + } + graphics_priv_root->dirty = 1; + + t = gr->freetype_methods.text_new(text, + (struct font_freetype_font *) + font, dx, dy); + + struct point p_eff; + p_eff.x = p->x; + p_eff.y = p->y; + + display_text_draw(t, gr, fg, bg, color, &p_eff); + gr->freetype_methods.text_destroy(t); +} + + +static void +draw_image(struct graphics_priv *gr, struct graphics_gc_priv *fg, + struct point *p, struct graphics_image_priv *img) +{ + draw_image_es(gr, p, img->img->w, img->img->h, img->img->pixels); +} + +static void +draw_drag(struct graphics_priv *gr, struct point *p) +{ + if (p) { + gr->p.x = p->x; + gr->p.y = p->y; + } +} + +static void +background_gc(struct graphics_priv *gr, struct graphics_gc_priv *gc) +{ + gr->background_gc = gc; +} + +/* + * Draws map in background + */ +static void +draw_background(struct graphics_priv *gr) +{ + struct point p_eff; + GLf x[8]; + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glViewport(0, 0, gr->width, gr->height); + //get_overlay_pos(gr, &p_eff); + p_eff.x = gr->p.x; + p_eff.y = gr->p.y; + + memset(x, 0, 8*sizeof(GLf)); + x[0]+=glF(1); + x[1]+=glF(1); + x[2]+=glF(1); + x[5]+=glF(1); + + glUniform1i(gr->use_texture_location, 1); + glEnableVertexAttribArray(gr->texture_position_location); + glVertexAttribPointer (gr->texture_position_location, 2, GL_FLOAT, 0, 0, x); + + glDisable(GL_BLEND); + glBindTexture(GL_TEXTURE_2D, gr->overlay_texture); + + draw_rectangle_do(gr, &p_eff, gr->width, gr->height); + + glUniform1i(gr->use_texture_location, 0); + glDisableVertexAttribArray(gr->texture_position_location); +} + +/* + Drawing method : + Map and overlays are rendered in an offscreen buffer (See render to texture) + and are recomposed altogether at draw_mode_end request for root +*/ +static void +draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) +{ + GLfloat matrix[16]; + struct graphics_priv *overlay = NULL; + int i; + + if (mode == draw_mode_begin){ + // Should not be necessary... + // SDL_GL_MakeCurrent(gr->platform->eglwindow, gr->platform->eglcontext); + + if (gr->parent == NULL){ + // Full redraw, reset drag position + gr->p.x = 0; + gr->p.y = 0; + } + + // Need to setup appropriate projection matrix + for (i = 0; i < 16 ; i++){ + matrix[i] = 0.0; + } + + matrix[0]=2.0 / gr->width; + matrix[5]=-2.0 / gr->height; + matrix[10]=1; + matrix[12]=-1; + matrix[13]=1; + matrix[15]=1; + glUniformMatrix4fv(gr->mvp_location, 1, GL_FALSE, matrix); + + glBindFramebuffer(GL_FRAMEBUFFER, gr->framebuffer_name); + glViewport(0,0,gr->width,gr->height); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } + + if (mode == draw_mode_end && gr->parent == NULL) { + overlay = gr->overlays; + draw_background(gr); + while(overlay){ + if (gr->overlay_enabled) + draw_overlay(overlay); + overlay = overlay->next; + } + sdl_egl_swap_buffers(gr->platform); + } + + gr->mode = mode; +} + +static int +graphics_opengl_fullscreen(struct window *w, int on) +{ + return 1; +} + +static void +graphics_opengl_disable_suspend(struct window *w) +{ + // No op +} + + +static GLuint +load_shader(const char *shader_source, GLenum type) +{ + GLuint shader = glCreateShader(type); + + glShaderSource(shader, 1, &shader_source, NULL); + glCompileShader(shader); + + return shader; +} + +static void * +get_data(struct graphics_priv *this, const char *type) +{ + GLuint vertexShader; + GLuint fragmentShader; + struct window* win; + int i; + + if (!strcmp(type, "gtk_widget")) { + fprintf(stderr, + "Currently GTK gui is not yet supported with EGL graphics driver\n"); + return NULL; + } + + if(strcmp(type, "window") == 0) { + SDL_GL_MakeCurrent(this->platform->eglwindow, this->platform->eglcontext); + + glClearColor ( 0 , 0 , 0 , 1); + glClear ( GL_COLOR_BUFFER_BIT ); + + callback_list_call_attr_2(graphics_priv_root->cbl, attr_resize, + GINT_TO_POINTER(this->width), GINT_TO_POINTER(this->height)); + + this->program = glCreateProgram(); + vertexShader = load_shader(vertex_src, GL_VERTEX_SHADER); + fragmentShader = load_shader(fragment_src, GL_FRAGMENT_SHADER); + + glAttachShader(this->program, vertexShader); + glAttachShader(this->program, fragmentShader); + glLinkProgram(this->program); + glUseProgram(this->program); + + this->mvp_location = glGetUniformLocation(this->program, "mvp"); + this->position_location = glGetAttribLocation(this->program, "position"); + glEnableVertexAttribArray(this->position_location); + this->texture_position_location = glGetAttribLocation(this->program, "texture_position"); + this->color_location = glGetUniformLocation(this->program, "avcolor"); + this->texture_location = glGetUniformLocation(this->program, "texture"); + this->use_texture_location = glGetUniformLocation(this->program, "use_texture"); + + glUniform1i(this->use_texture_location, 0); + glUniform1i(this->texture_location, 0); + + win=g_new(struct window, 1); + win->priv=this; + win->disable_suspend=NULL; + win->fullscreen = graphics_opengl_fullscreen; + win->disable_suspend = graphics_opengl_disable_suspend; + return win; + } + + return NULL; + +} + +static void +overlay_disable(struct graphics_priv *gr, int disable) +{ + gr->overlay_enabled = !disable; + gr->force_redraw = 1; + draw_mode(gr, draw_mode_end); +} + +// Need more testing +static void +overlay_resize(struct graphics_priv *gr, struct point *p, int w, int h, + int wraparound) +{ + int changed = 0; + int w2, h2; + + if (w == 0) { + w2 = 1; + } else { + w2 = w; + } + + if (h == 0) { + h2 = 1; + } else { + h2 = h; + } + + gr->p = *p; + if (gr->width != w2) { + gr->width = w2; + changed = 1; + } + + if (gr->height != h2) { + gr->height = h2; + changed = 1; + } + + gr->wraparound = wraparound; + + if (changed) { + if ((w == 0) || (h == 0)) { + gr->overlay_autodisabled = 1; + } else { + gr->overlay_autodisabled = 0; + // Reset overlay texture + glDeleteTextures(1, &gr->overlay_texture); + glGenTextures(1, &gr->overlay_texture); + glBindTexture(GL_TEXTURE_2D, gr->overlay_texture); + glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, gr->width, gr->height, 0,GL_RGBA, GL_UNSIGNED_BYTE, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gr->overlay_texture, 0); + } + + callback_list_call_attr_2(gr->cbl, attr_resize, + GINT_TO_POINTER(gr->width), + GINT_TO_POINTER(gr->height)); + } +} + + +static struct graphics_priv *overlay_new(struct graphics_priv *gr, + struct graphics_methods *meth, + struct point *p, int w, int h, + int wraparound); + +static struct graphics_methods graphics_methods = { + graphics_destroy, + draw_mode, + draw_lines, + draw_polygon, + draw_rectangle, + NULL, + draw_text, + draw_image, + NULL, + draw_drag, + NULL, + gc_new, + background_gc, + overlay_new, + image_new, + get_data, + image_free, + NULL, + overlay_disable, + overlay_resize, + NULL, /* set_attr, */ + NULL, /* show_native_keyboard */ + NULL, /* hide_native_keyboard */ +}; + +static struct graphics_priv * +graphics_opengl_new_helper(struct graphics_methods *meth) +{ + struct font_priv *(*font_freetype_new) (void *meth); + font_freetype_new = plugin_get_category_font("freetype"); + + if (!font_freetype_new) { + return NULL; + } + + struct graphics_priv *this = g_new0(struct graphics_priv, 1); + + font_freetype_new(&this->freetype_methods); + *meth = graphics_methods; + + meth->font_new = + (struct graphics_font_priv * + (*)(struct graphics_priv *, struct graphics_font_methods *, + char *, int, int)) this->freetype_methods.font_new; + meth->get_text_bbox = + (void (*) (struct graphics_priv *, struct graphics_font_priv *, + char *, int, int, struct point*, int)) this->freetype_methods.get_text_bbox; + return this; +} + +static void +create_framebuffer_texture(struct graphics_priv *gr) +{ + GLenum status; + // Prepare a new framebuffer object + glGenFramebuffers(1, &gr->framebuffer_name); + glBindFramebuffer(GL_FRAMEBUFFER, gr->framebuffer_name); + + glGenTextures(1, &gr->overlay_texture); + glBindTexture(GL_TEXTURE_2D, gr->overlay_texture); + glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, gr->width, gr->height, 0,GL_RGBA, GL_UNSIGNED_BYTE, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gr->overlay_texture, 0); + + status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) { + printf("Error creating texture framebuffer for overlay, exiting.\n"); + SDL_Quit(); + exit(1); + } +} + +static struct graphics_priv * +overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, + struct point *p, int w, int h, int wraparound) +{ + struct graphics_priv *this = graphics_opengl_new_helper(meth); + + this->p.x = p->x; + this->p.y = p->y; + + this->width = w; + this->height = h; + this->parent = gr; + this->overlays = NULL; + this->fill_poly = 1; + + // Copy shader locations parameters + this->mvp_location = graphics_priv_root->mvp_location; + this->position_location = graphics_priv_root->position_location; + this->texture_position_location = graphics_priv_root->texture_position_location; + this->color_location = graphics_priv_root->color_location; + this->texture_location = graphics_priv_root->texture_location; + this->use_texture_location = graphics_priv_root->use_texture_location; + + if ((w == 0) || (h == 0)) { + this->overlay_autodisabled = 1; + } else { + this->overlay_autodisabled = 0; + } + this->overlay_enabled = 1; + + this->next = gr->overlays; + gr->overlays = this; + + create_framebuffer_texture(this); + + return this; +} + + +static gboolean graphics_sdl_idle(void *data) +{ + struct graphics_priv *gr = (struct graphics_priv *)data; + struct point p; + SDL_Event ev; + int ret; + char key_mod = 0; + char keybuf[8]; + char keycode; + + // Process SDL events (KEYS + MOUSE) + while(1) + { + ret = SDL_PollEvent(&ev); + + if(!ret) + break; + + switch(ev.type) + { + case SDL_MOUSEMOTION: + { + p.x = ev.motion.x; + p.y = ev.motion.y; + //gr->force_redraw = 1; + callback_list_call_attr_1(gr->cbl, attr_motion, (void *)&p); + break; + } + + case SDL_KEYDOWN: + { + memset(keybuf, 0, sizeof(keybuf)); + switch(ev.key.keysym.sym) + { + case SDLK_F1: + graphics_priv_root->fill_poly = !graphics_priv_root->fill_poly; + break; + case SDLK_F2: + graphics_priv_root->show_overlays = !graphics_priv_root->show_overlays; + break; + case SDLK_LEFT: + { + keybuf[0] = NAVIT_KEY_LEFT; + break; + } + case SDLK_RIGHT: + { + keybuf[0] = NAVIT_KEY_RIGHT; + break; + } + case SDLK_BACKSPACE: + { + keybuf[0] = NAVIT_KEY_BACKSPACE; + break; + } + case SDLK_RETURN: + { + keybuf[0] = NAVIT_KEY_RETURN; + break; + } + case SDLK_DOWN: + { + keybuf[0] = NAVIT_KEY_DOWN; + break; + } + case SDLK_PAGEUP: + { + keybuf[0] = NAVIT_KEY_ZOOM_OUT; + break; + } + case SDLK_UP: + { + keybuf[0] = NAVIT_KEY_UP; + break; + } + case SDLK_PAGEDOWN: + { + keybuf[0] = NAVIT_KEY_ZOOM_IN; + break; + } + case SDLK_ESCAPE: + { + USERWANTSTOQUIT = 1; + break; + } + default: + { + /* return unicode chars when they can be converted to ascii */ + // Need more work... + keycode = ev.key.keysym.sym; + keybuf[0] = keycode <= 127 ? keycode : 0; + break; + } + } + if (keybuf[0]) { + callback_list_call_attr_1(gr->cbl, attr_keypress, (void *)keybuf); + } + break; + } + case SDL_KEYUP: + { + break; + } + case SDL_MOUSEBUTTONDOWN: + { + p.x = ev.button.x; + p.y = ev.button.y; + graphics_priv_root->force_redraw = 1; + callback_list_call_attr_3(gr->cbl, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER((int)ev.button.button), (void *)&p); + break; + } + + case SDL_MOUSEBUTTONUP: + { + p.x = ev.button.x; + p.y = ev.button.y; + callback_list_call_attr_3(gr->cbl, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER((int)ev.button.button), (void *)&p); + break; + } + + case SDL_QUIT: + { + break; + } + default: + { + break; + } + } + } + + if (USERWANTSTOQUIT){ + SDL_Quit(); + exit(0); + } + + return TRUE; +} + + +static struct graphics_priv * +graphics_opengl_new(struct navit *nav, struct graphics_methods *meth, + struct attr **attrs, struct callback_list *cbl) +{ + struct attr *attr; + if (!event_request_system("glib", "graphics_opengl_new")) + return NULL; + + hImageData = g_hash_table_new(g_str_hash, g_str_equal); + struct graphics_priv *this = graphics_opengl_new_helper(meth); + graphics_priv_root = this; + + this->nav = nav; + this->parent = NULL; + this->overlay_enabled = 1; + this->framebuffer_name = 0; + this->overlays = NULL; + this->fill_poly = 1; + this->show_overlays = 1; + + this->width = SCREEN_WIDTH; + if ((attr = attr_search(attrs, NULL, attr_w))) + this->width = attr->u.num; + this->height = SCREEN_HEIGHT; + if ((attr = attr_search(attrs, NULL, attr_h))) + this->height = attr->u.num; + this->timeout = 100; + if ((attr = attr_search(attrs, NULL, attr_timeout))) + this->timeout = attr->u.num; + this->delay = 0; + if ((attr = attr_search(attrs, NULL, attr_delay))) + this->delay = attr->u.num; + this->cbl = cbl; + + this->framebuffer_name = 0; + + graphics_priv_root->cbl = cbl; + graphics_priv_root->width = this->width; + graphics_priv_root->height = this->height; + + struct graphics_opengl_platform *ret=g_new0(struct graphics_opengl_platform,1); + + // SDL Init + int sdl_status = SDL_Init(SDL_INIT_VIDEO|SDL_INIT_EVENTS); + + if (sdl_status != 0){ + fprintf(stderr, "\nUnable to initialize SDL: %i %s\n", sdl_status, SDL_GetError() ); + exit(1); + } + + Uint32 flags = SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN; + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 0); + // I think it's not necessary to sync vblank, update is quite slow + SDL_GL_SetSwapInterval(0); + + ret->eglwindow = SDL_CreateWindow( + "Navit EGL", // window title + SDL_WINDOWPOS_UNDEFINED, // initial x position + SDL_WINDOWPOS_UNDEFINED, // initial y position + this->width, // width, in pixels + this->height, // height, in pixels + flags + ); + + if (ret->eglwindow == NULL) { + fprintf(stderr, "\nUnable to initialize SDL window: %s\n", SDL_GetError() ); + goto error; + } + + ret->eglcontext = SDL_GL_CreateContext(ret->eglwindow); + if (ret->eglcontext == NULL){ + printf("EGL context creation failed\n"); + goto error; + } + + this->platform = ret; + create_framebuffer_texture(this); + g_timeout_add(G_PRIORITY_DEFAULT+10, graphics_sdl_idle, this); + glDisable(GL_DEPTH_TEST); + return this; +error: + SDL_Quit(); + return NULL; +} + +void +plugin_init(void) +{ + plugin_register_category_graphics("egl", graphics_opengl_new); +} + -- cgit v1.2.1 From 0ba8f875914f91dae76d83feaa37afdaf72c49a7 Mon Sep 17 00:00:00 2001 From: Pierre GRANDIN Date: Thu, 23 Feb 2017 07:12:57 -0800 Subject: Add:CI:Add basic UI tests (#197) * Ensures that navit has time to start before starting tests * Adding basic UI town search tests * Add pointer icon when clicking via CI * Fetch zlib from github, reduces download issues * Download a sample map for UI tests * Start navit in the background * Fixed Demo vehicle activation * Set a destination for UI tests * UI tests to switch to 3d view * Capture image when clicking for UI tests * Append 5 frames of usage to the UI tests * Use keyboard instead of mouse emulation for UI tests * Temporarily disabling dbus test because of issues in circleCI --- ci/pointer-64.png | Bin 0 -> 1733 bytes ci/run_linux_tests.sh | 17 ++++++++-- ci/xdotools.sh | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 ci/pointer-64.png create mode 100644 ci/xdotools.sh diff --git a/ci/pointer-64.png b/ci/pointer-64.png new file mode 100644 index 000000000..904f6878d Binary files /dev/null and b/ci/pointer-64.png differ diff --git a/ci/run_linux_tests.sh b/ci/run_linux_tests.sh index 0897ec4e4..3db760962 100644 --- a/ci/run_linux_tests.sh +++ b/ci/run_linux_tests.sh @@ -4,15 +4,26 @@ set -e pushd ~/linux-bin/navit/ sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml -sed -i -e 's@name="Demo" profilename="car" enabled="no" active="yes"@name="Demo" profilename="car" enabled="yes" active="yes" follow="1" refresh="1"@' navit.xml +sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml -./navit & +cat > maps/berkeley.xml << EOF + +EOF +wget http://sd-55475.dedibox.fr/berkeley.bin -O maps/berkeley.bin + +mkdir $CIRCLE_ARTIFACTS/logs + +./navit >$CIRCLE_ARTIFACTS/logs/stdout.txt 2>$CIRCLE_ARTIFACTS/logs/stderr.txt & pid=$! +sleep 5 + import -window root $CIRCLE_ARTIFACTS/default.png +bash ~/navit/ci/xdotools.sh + # python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ -# + # dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit diff --git a/ci/xdotools.sh b/ci/xdotools.sh new file mode 100644 index 000000000..6c29c696d --- /dev/null +++ b/ci/xdotools.sh @@ -0,0 +1,86 @@ +sudo apt-get install xdotool +# Use xinput test 4 when running x11vnc on the circleci server to find mouse coordinates + +[ -d $CIRCLE_ARTIFACTS/frames/ ] || mkdir $CIRCLE_ARTIFACTS/frames/ + +event=0 + +send_event (){ + file=`printf "%05d\n" $event` + + import -window root $CIRCLE_ARTIFACTS/frames/tmp.png + if [[ "$1" == "mousemove" ]]; then + composite -gravity NorthWest -geometry +$2+$3 ~/navit/ci/pointer-64.png $CIRCLE_ARTIFACTS/frames/tmp.png $CIRCLE_ARTIFACTS/frames/${file}.png + else + mv $CIRCLE_ARTIFACTS/frames/tmp.png $CIRCLE_ARTIFACTS/frames/${file}.png + fi + event=$((event+1)) + xdotool $@ + sleep 1 +} + + +# Center the view +send_event key KP_Enter # Open main menu +send_event key Down # Select 'Actions' +send_event key KP_Enter # Validate +send_event key Down # Scroll to 'Bookmarks' +send_event key Right # Scroll to 'Former destinations' +send_event key Right # Select 'Town' +send_event key KP_Enter # Validate +# Send 'Berk' +send_event key b +send_event key e +send_event key r +send_event key k +send_event key Down # Highlight search area +send_event key Down # Highlight first result +send_event key KP_Enter # Validate + +# Set the position +send_event mousemove 482 318 click 1 # Open main menu, clicking on a somewhat random position on the map +send_event key Down # Select 'Actions' +send_event key KP_Enter # Validate +send_event key Down # Scroll to 'Bookmarks' +send_event key Right # Scroll to 'Former destinations' +send_event key Right # Select current coordinates +send_event key KP_Enter # Validate + +# Set a destination +send_event key KP_Enter # Open main menu +send_event key Down # Select 'Actions' +send_event key KP_Enter # Validate +send_event key Down # Scroll to 'Bookmarks' +send_event key Right # Scroll to 'Former destinations' +send_event key Right # Select 'Town' +send_event key KP_Enter # Validate +# Send 'oakl' +send_event key o +send_event key a +send_event key k +send_event key l +send_event key Down # Highlight search area +send_event key Down # Highlight first result +send_event key KP_Enter # Validate + +# Switch to 3d view +send_event key KP_Enter # Open main menu +send_event key Down # Select 'Actions' +send_event key Right # Select 'Settings' +send_event key KP_Enter # Validate +send_event key Down # Select 'Display' +send_event key KP_Enter # Validate +send_event key Down # Scroll to 'Layout' +send_event key Right # Scroll to 'Fullscreen' +send_event key Right # Select '3d' +send_event key KP_Enter # Validate +# Send 'Berk' + +# capture 5 seconds of usage +for i in `seq 99994 99999`; do + import -window root $CIRCLE_ARTIFACTS/frames/${i}.png + sleep 1 +done + +# Assemble the gif +convert -delay 100 -loop 0 $CIRCLE_ARTIFACTS/frames/*.png $CIRCLE_ARTIFACTS/town_search.gif -- cgit v1.2.1 From 8efae9e743b97d520ffc80afdf20785ac07ea9b5 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sat, 21 Nov 2015 17:21:04 +0100 Subject: Add QT5 graphics. Works on Sailfish OS. --- CMakeLists.txt | 22 +- navit/graphics/qt5/CMakeLists.txt | 9 + navit/graphics/qt5/Makefile.am | 9 + navit/graphics/qt5/QNavitWidget.cpp | 148 ++++++++ navit/graphics/qt5/QNavitWidget.h | 32 ++ navit/graphics/qt5/event_qt5.cpp | 185 ++++++++++ navit/graphics/qt5/event_qt5.h | 18 + navit/graphics/qt5/graphics_qt5.cpp | 659 ++++++++++++++++++++++++++++++++++++ navit/graphics/qt5/graphics_qt5.h | 50 +++ 9 files changed, 1127 insertions(+), 5 deletions(-) create mode 100644 navit/graphics/qt5/CMakeLists.txt create mode 100644 navit/graphics/qt5/Makefile.am create mode 100644 navit/graphics/qt5/QNavitWidget.cpp create mode 100644 navit/graphics/qt5/QNavitWidget.h create mode 100644 navit/graphics/qt5/event_qt5.cpp create mode 100644 navit/graphics/qt5/event_qt5.h create mode 100644 navit/graphics/qt5/graphics_qt5.cpp create mode 100644 navit/graphics/qt5/graphics_qt5.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 926fcb8b2..a240b6630 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ add_module(graphics/opengl "FreeType library not found" FALSE) add_module(graphics/sdl "Required library not found" FALSE) add_module(graphics/egl "Required library not found" FALSE) add_module(graphics/qt_qpainter "Qt libraries not found" FALSE) +add_module(graphics/qt5 "Qt5 libraries not found" FALSE) add_module(gui/qml "Qt Declarative not found" FALSE) add_module(gui/gtk "GTK libs not found" FALSE) add_module(vehicle/gpsd "gpsd lib not found" FALSE) @@ -155,11 +156,18 @@ find_package(Threads) libfind_pkg_check_modules(FONTCONFIG fontconfig) #Qt detection if (NOT DISABLE_QT) - # Unfortunately, CMake seems to ignore the "OPTIONAL_COMPONENTS" flag, - # and actually requires all components to be installed. Maybe this can - # be fixed later... - find_package(Qt4 4.7 COMPONENTS QtCore OPTIONAL_COMPONENTS QtGui QtXml QtDeclarative QtSvg) + find_package(Qt5Widgets) + find_package(Qt5Svg) + #find_package(Qt5Declarative) + if (Qt5Widgets_FOUND) + else (Qt5Widgets_FOUND) + # Unfortunately, CMake seems to ignore the "OPTIONAL_COMPONENTS" flag, + # and actually requires all components to be installed. Maybe this can + # be fixed later... + find_package(Qt4 4.7 COMPONENTS QtCore OPTIONAL_COMPONENTS QtGui QtXml QtDeclarative QtSvg) + endif (Qt5Widgets_FOUND) endif (NOT DISABLE_QT) + #pkg-config based detection find_package(PkgConfig) if(PKG_CONFIG_FOUND) @@ -301,7 +309,11 @@ if (QT_FOUND) endif() endif() endif(QT_FOUND) - +if (Qt5Widgets_FOUND) + set_with_reason(graphics/qt5 "Qt5 found" TRUE ${Qt5Widgets_LIBRARIES} + ${Qt5Declarative_LIBRARIES} + ${Qt5Svg_LIBRARIES}) +endif () if(GTK2_FOUND) # Include gtk.h with "SYSTEM" to avoid GCC compiler warning for gtkitemfactory.h. include_directories(SYSTEM ${GTK2_GTK_INCLUDE_DIR}) diff --git a/navit/graphics/qt5/CMakeLists.txt b/navit/graphics/qt5/CMakeLists.txt new file mode 100644 index 000000000..9c2574e8b --- /dev/null +++ b/navit/graphics/qt5/CMakeLists.txt @@ -0,0 +1,9 @@ +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) +# Instruct CMake to run moc automatically when needed. +set(CMAKE_AUTOMOC ON) + +# Find the QtWidgets library +find_package(Qt5Widgets) + +module_add_library(graphics_qt5 graphics_qt5.cpp event_qt5.cpp QNavitWidget.cpp) diff --git a/navit/graphics/qt5/Makefile.am b/navit/graphics/qt5/Makefile.am new file mode 100644 index 000000000..a4631ff4a --- /dev/null +++ b/navit/graphics/qt5/Makefile.am @@ -0,0 +1,9 @@ +include $(top_srcdir)/Makefile.inc +AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_null +if PLUGINS +modulegraphics_LTLIBRARIES = libgraphics_null.la +else +noinst_LTLIBRARIES = libgraphics_null.la +endif +libgraphics_null_la_SOURCES = graphics_null.c +libgraphics_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/graphics/qt5/QNavitWidget.cpp b/navit/graphics/qt5/QNavitWidget.cpp new file mode 100644 index 000000000..df9038055 --- /dev/null +++ b/navit/graphics/qt5/QNavitWidget.cpp @@ -0,0 +1,148 @@ +/** + * Navit, a modular navigation system. + * Copyright (C) 2005-2008 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include "config.h" +#ifdef HAVE_UNISTD_H +#include +#endif +#include "item.h" +#include "point.h" +#include "graphics.h" +#include "color.h" +#include "plugin.h" +#include "event.h" +#include "debug.h" +#include "window.h" +#include "callback.h" +#if defined(WINDOWS) || defined(WIN32) || defined (HAVE_API_WIN32_CE) +#include +#endif +#include "graphics_qt5.h" +#include "QNavitWidget.h" +#include "QNavitWidget.moc" + +QNavitWidget :: QNavitWidget(struct graphics_priv *my_graphics_priv, + QWidget * parent, + Qt::WindowFlags flags): QWidget(parent, flags) +{ + graphics_priv = my_graphics_priv; +} + +bool QNavitWidget::event(QEvent *event) +{ + if (event->type() == QEvent::Gesture) + dbg(lvl_debug, "Gesture event caught"); + //return gestureEvent(static_cast(event)); + return QWidget::event(event); +} + +void QNavitWidget :: paintEvent(QPaintEvent * event) +{ +// dbg(lvl_debug,"enter\n"); + QPainter painter(this); + /* color background if any */ + if (graphics_priv->background_graphics_gc_priv != NULL) + { + painter.setPen(*graphics_priv->background_graphics_gc_priv->pen); + painter.fillRect(0, 0, graphics_priv->pixmap->width(), + graphics_priv->pixmap->height(), + *graphics_priv->background_graphics_gc_priv->brush); + } + painter.drawPixmap(0,0,*graphics_priv->pixmap); + +} + +void QNavitWidget :: do_resize(QSize size) +{ + delete graphics_priv->pixmap; + graphics_priv->pixmap=new QPixmap(size); + graphics_priv->pixmap->fill(); + QPainter painter(graphics_priv->pixmap); + QBrush brush; + painter.fillRect(0, 0, size.width(), size.height(), brush); + dbg(lvl_debug,"size %dx%d\n", size.width(), size.height()); + dbg(lvl_debug,"pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height()); + resize_callback(size.width(),size.height()); +} + +void QNavitWidget::mouseEvent(int pressed, QMouseEvent *event) +{ + struct point p; +// dbg(lvl_debug,"enter\n"); + p.x=event->x(); + p.y=event->y(); + switch (event->button()) { + case Qt::LeftButton: + callback_list_call_attr_3(callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(1), GINT_TO_POINTER(&p)); + break; + case Qt::MidButton: + callback_list_call_attr_3(callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(2), GINT_TO_POINTER(&p)); + break; + case Qt::RightButton: + callback_list_call_attr_3(callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(3), GINT_TO_POINTER(&p)); + break; + default: + break; + } +} + +void QNavitWidget::mousePressEvent(QMouseEvent *event) +{ +// dbg(lvl_debug,"enter\n"); + mouseEvent(1, event); +} + +void QNavitWidget::mouseReleaseEvent(QMouseEvent *event) +{ +// dbg(lvl_debug,"enter\n"); + mouseEvent(0, event); +} + +void QNavitWidget::mouseMoveEvent(QMouseEvent *event) +{ + struct point p; +// dbg(lvl_debug,"enter\n"); + p.x=event->x(); + p.y=event->y(); + callback_list_call_attr_1(callbacks, attr_motion, (void *)&p); +} + +void QNavitWidget::wheelEvent(QWheelEvent *event) +{ + struct point p; + int button; + dbg(lvl_debug,"enter"); + p.x=event->x(); // xy-coordinates of the mouse pointer + p.y=event->y(); + + if (event->delta() > 0) // wheel movement away from the person + button=4; + else if (event->delta() < 0) // wheel movement towards the person + button=5; + else + button=-1; + + if (button != -1) { + callback_list_call_attr_3(callbacks, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(button), GINT_TO_POINTER(&p)); + callback_list_call_attr_3(callbacks, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(button), GINT_TO_POINTER(&p)); + } + + event->accept(); +} diff --git a/navit/graphics/qt5/QNavitWidget.h b/navit/graphics/qt5/QNavitWidget.h new file mode 100644 index 000000000..7fd3223cc --- /dev/null +++ b/navit/graphics/qt5/QNavitWidget.h @@ -0,0 +1,32 @@ +#ifndef __QNavitWidget_h +#define __QNavitWidget_h +class QNavitWidget; +#include "graphics_qt5.h" +#include +#include +#include +#include +#include + +class QNavitWidget : public QWidget +{ + Q_OBJECT +public: + QNavitWidget(struct graphics_priv *my_graphics_priv, + QWidget * parent, + Qt::WindowFlags flags); +protected: + virtual bool event(QEvent *event); + virtual void paintEvent(QPaintEvent * event); + virtual void do_resize(QSize size); + virtual void mouseEvent(int pressed, QMouseEvent *event); + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void wheelEvent(QWheelEvent * event); + + +private: + struct graphics_priv *graphics_priv; +}; +#endif \ No newline at end of file diff --git a/navit/graphics/qt5/event_qt5.cpp b/navit/graphics/qt5/event_qt5.cpp new file mode 100644 index 000000000..12f23d954 --- /dev/null +++ b/navit/graphics/qt5/event_qt5.cpp @@ -0,0 +1,185 @@ +/** + * Navit, a modular navigation system. + * Copyright (C) 2005-2008 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include "config.h" +#include "navit/point.h" +#include "navit/item.h" +#include "navit/graphics.h" +#include "navit/color.h" +#include "navit/debug.h" +#include "navit/plugin.h" +#include "navit/callback.h" +#include "navit/event.h" +#include "navit/window.h" +#include "navit/keys.h" +#include "navit/navit.h" +#if defined(WINDOWS) || defined(WIN32) || defined (HAVE_API_WIN32_CE) +#include +#endif +#include +#include "graphics_qt5.h" +#include "event_qt5.h" +#include "event_qt5.moc" + +struct event_watch { + QSocketNotifier *sn; + struct callback *cb; + int fd; +}; + +static void event_qt5_remove_timeout(struct event_timeout *to); + +qt5_navit_timer :: qt5_navit_timer (QObject * parent) : QObject(parent) +{ + timer_type=g_hash_table_new(NULL, NULL); + timer_callback=g_hash_table_new(NULL, NULL); + watches=g_hash_table_new(NULL,NULL); + dbg(lvl_debug, "qt5_navit_timer object created\n"); +} + +void qt5_navit_timer :: timerEvent (QTimerEvent * event) +{ + int id=event->timerId(); + void* multi = NULL; +// dbg(lvl_debug, "TimerEvent (%d)\n", id); + struct callback *cb=(struct callback *)g_hash_table_lookup(timer_callback, (void *)id); + if (cb) + callback_call_0(cb); + /* remove timer if it was oneshot timer */ + if (g_hash_table_lookup_extended(timer_type, (void *)id, NULL, &multi)) + { + /* it's still in the list */ + if(((int)multi) == 0) + event_qt5_remove_timeout((struct event_timeout *)id); + } +// dbg(lvl_debug, "TimerEvent (%d) leave\n", id); +} + +qt5_navit_timer * qt5_timer = NULL; + +static void +event_qt5_main_loop_run(void) +{ + + dbg(lvl_debug,"enter\n"); + if(navit_app != NULL) + navit_app->exec(); + +} + +static void event_qt5_main_loop_quit(void) +{ + dbg(lvl_debug,"enter\n"); + exit(0); +} + +static struct event_watch * +event_qt5_add_watch(int fd, enum event_watch_cond cond, struct callback *cb) +{ + dbg(lvl_debug,"enter fd=%d\n",(int)(long)fd); + struct event_watch *ret=g_new0(struct event_watch, 1); + ret->fd=fd; + ret->cb=cb; + g_hash_table_insert(qt5_timer->watches, GINT_TO_POINTER(fd), ret); + ret->sn=new QSocketNotifier(fd, QSocketNotifier::Read, qt5_timer); + QObject::connect(ret->sn, SIGNAL(activated(int)), qt5_timer, SLOT(watchEvent(int))); + return ret; +} + +static void +event_qt5_remove_watch(struct event_watch *ev) +{ + dbg(lvl_debug,"enter\n"); + g_hash_table_remove(qt5_timer->watches, GINT_TO_POINTER(ev->fd)); + delete(ev->sn); + g_free(ev); +} + + +static struct event_timeout * +event_qt5_add_timeout(int timeout, int multi, struct callback *cb) +{ + int id; + dbg(lvl_debug,"add timeout %d, mul %d, %p ==",timeout, multi, cb); + id=qt5_timer->startTimer(timeout); + dbg(lvl_debug,"%d\n", id); + g_hash_table_insert(qt5_timer->timer_callback, (void *)id, cb); + g_hash_table_insert(qt5_timer->timer_type, (void *)id, (void *)!!multi); + return (struct event_timeout *)id; +} + +static void +event_qt5_remove_timeout(struct event_timeout *to) +{ + dbg(lvl_debug,"remove timeout (%d)\n",(int)(long)to); + qt5_timer->killTimer((int)(long)to); + g_hash_table_remove(qt5_timer->timer_callback, to); + g_hash_table_remove(qt5_timer->timer_type, to); +} + + +static struct event_idle * +event_qt5_add_idle(int priority, struct callback *cb) +{ + dbg(lvl_debug,"add idle event\n"); + return (struct event_idle *)event_qt5_add_timeout(0, 1, cb); +} + +static void +event_qt5_remove_idle(struct event_idle *ev) +{ + dbg(lvl_debug,"Remove idle timeout\n"); + event_qt5_remove_timeout((struct event_timeout *) ev); +} + +static void +event_qt5_call_callback(struct callback_list *cb) +{ + dbg(lvl_debug,"enter\n"); +} + +static struct event_methods event_qt5_methods = { + event_qt5_main_loop_run, + event_qt5_main_loop_quit, + event_qt5_add_watch, + event_qt5_remove_watch, + event_qt5_add_timeout, + event_qt5_remove_timeout, + event_qt5_add_idle, + event_qt5_remove_idle, + event_qt5_call_callback, +}; + +static struct event_priv * +event_qt5_new(struct event_methods *meth) +{ + *meth=event_qt5_methods; + qt5_timer = new qt5_navit_timer(NULL); + return NULL; +} + + +void +qt5_event_init(void) +{ + plugin_register_event_type("qt5", event_qt5_new); +} diff --git a/navit/graphics/qt5/event_qt5.h b/navit/graphics/qt5/event_qt5.h new file mode 100644 index 000000000..f999d3a46 --- /dev/null +++ b/navit/graphics/qt5/event_qt5.h @@ -0,0 +1,18 @@ +#include +#include + +class qt5_navit_timer : public QObject +{ + Q_OBJECT +public: + qt5_navit_timer(QObject * parent = 0); + GHashTable *timer_type; + GHashTable *timer_callback; + GHashTable *watches; +protected: + void timerEvent(QTimerEvent * event); +}; + + +void +qt5_event_init(void); diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp new file mode 100644 index 000000000..1e7154869 --- /dev/null +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -0,0 +1,659 @@ +/** + * Navit, a modular navigation system. + * Copyright (C) 2005-2008 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include "config.h" +#ifdef HAVE_UNISTD_H +#include +#endif +#include "item.h" +#include "point.h" +#include "graphics.h" +#include "color.h" +#include "plugin.h" +#include "event.h" +#include "debug.h" +#include "window.h" +#include "callback.h" +#if defined(WINDOWS) || defined(WIN32) || defined (HAVE_API_WIN32_CE) +#include +#endif +#include "graphics_qt5.h" +#include "event_qt5.h" +#include "QNavitWidget.h" +#include +#include +#include +#include +#include +#include +#include + + + +struct callback_list* callbacks; +QApplication * navit_app = NULL; + +struct graphics_font_priv { + QFont * font; +}; + +struct graphics_image_priv { + QPixmap * pixmap; +}; + +static void +graphics_destroy(struct graphics_priv *gr) +{ +// dbg(lvl_debug,"enter\n"); +#ifdef QT_QPAINTER_USE_FREETYPE + gr->freetype_methods.destroy(); +#endif + /* destroy painter */ + if(gr->painter != NULL) + delete(gr->painter); + /* destroy pixmap */ + if(gr->pixmap != NULL) + delete(gr->pixmap); + /* destroy widget */ + delete(gr->widget); + /* unregister from parent, if any */ + if(gr->parent != NULL) + { + g_hash_table_remove(gr->parent->overlays, gr); + } + /* destroy overlays hash */ + g_hash_table_destroy(gr->overlays); + /* destroy self */ + g_free(gr); +} + +static void font_destroy(struct graphics_font_priv *font) +{ +// dbg(lvl_debug,"enter\n"); + if(font->font != NULL) + delete(font->font); + g_free(font); + +} + +static struct graphics_font_methods font_methods = { + font_destroy +}; + +static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct graphics_font_methods *meth, char *font, int size, int flags) +{ + struct graphics_font_priv *font_priv; +// dbg(lvl_debug,"enter (font %s, %d)\n", font, size); + font_priv = g_new0(struct graphics_font_priv, 1); + font_priv->font=new QFont(font,size/16); + font_priv->font->setStyleStrategy(QFont::NoAntialias); + *meth=font_methods; + return font_priv; +} + +static void +gc_destroy(struct graphics_gc_priv *gc) +{ +// dbg(lvl_debug,"enter gc=%p\n", gc); + delete(gc->pen); + delete(gc->brush); + g_free(gc); +} + +static void +gc_set_linewidth(struct graphics_gc_priv *gc, int w) +{ + //dbg(lvl_debug,"enter gc=%p, %d\n", gc, w); + gc->pen->setWidth(w); +} + +static void +gc_set_dashes(struct graphics_gc_priv *gc, int w, int offset, unsigned char *dash_list, int n) +{ + /* use Qt dash feature */ + QVector dashes; + gc->pen->setWidth(w); + for(int a = 0; a < n; a ++) + dashes << dash_list[n]; + gc->pen->setDashPattern(dashes); +} + +static void +gc_set_foreground(struct graphics_gc_priv *gc, struct color *c) +{ + QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); + //dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); + gc->pen->setColor(col); + gc->brush->setColor(col); + //gc->c=*c; +} + +static void +gc_set_background(struct graphics_gc_priv *gc, struct color *c) +{ + QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); + //dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); + //gc->pen->setColor(col); + //gc->brush->setColor(col); +} + +static struct graphics_gc_methods gc_methods = { + gc_destroy, + gc_set_linewidth, + gc_set_dashes, + gc_set_foreground, + gc_set_background +}; + +static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics_gc_methods *meth) +{ + struct graphics_gc_priv * graphics_gc_priv = NULL; +// dbg(lvl_debug,"enter gr==%p\n", gr); + graphics_gc_priv = g_new0(struct graphics_gc_priv, 1); + graphics_gc_priv->graphics_priv = gr; + graphics_gc_priv->pen=new QPen(); + graphics_gc_priv->brush=new QBrush(Qt::SolidPattern); + + *meth=gc_methods; + return graphics_gc_priv; +} + +static void image_destroy(struct graphics_image_priv *img) +{ +// dbg(lvl_debug, "enter\n"); + if(img->pixmap != NULL) + delete(img->pixmap); + g_free(img); +} + +struct graphics_image_methods image_methods ={ + image_destroy +}; + + +static struct graphics_image_priv * +image_new(struct graphics_priv *gr, struct graphics_image_methods *meth, char *path, int *w, int *h, struct point *hot, int rotation) +{ + struct graphics_image_priv * image_priv; + dbg(lvl_debug,"enter %s, %d %d\n", path, *w, *h); + if(*w == -1) *w = 16; + if(*h == -1) *h = 16; +// QPixmap *cachedPixmap; + QString key(path); + image_priv = g_new0(struct graphics_image_priv, 1); + *meth = image_methods; +// cachedPixmap=QPixmapCache::find(key); +// if (!cachedPixmap) { + if(1/*key.endsWith(".svg", Qt::CaseInsensitive)*/) { + QSvgRenderer renderer(key); + if (!renderer.isValid()) { + g_free(image_priv); + return NULL; + } + image_priv->pixmap=new QPixmap(/*renderer.defaultSize()*/*w, *h); + image_priv->pixmap->fill(Qt::transparent); + QPainter painter(image_priv->pixmap); + renderer.render(&painter); + + } else { + image_priv->pixmap=new QPixmap(path); + } + if (image_priv->pixmap->isNull()) { + g_free(image_priv); + return NULL; + } + +// QPixmapCache::insert(key,QPixmap(*image_priv->pixmap)); +// } else { +// image_priv->pixmap=new QPixmap(*cachedPixmap); +// } + + *w=image_priv->pixmap->width(); + *h=image_priv->pixmap->height(); +// dbg(lvl_debug, "Got (%d,%d)\n", *w,*h); + if (hot) { + hot->x=*w/2; + hot->y=*h/2; + } + + return image_priv; +} + +static void +draw_lines(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int count) +{ + int i; + QPolygon polygon; +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + + for (i = 0 ; i < count ; i++) + polygon.putPoints(i, 1, p[i].x, p[i].y); + gr->painter->setPen(*gc->pen); + gr->painter->drawPolyline(polygon); + +} + +static void +draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int count) +{ + int i; + QPolygon polygon; +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + + for (i = 0 ; i < count ; i++) + polygon.putPoints(i, 1, p[i].x, p[i].y); + gr->painter->setPen(*gc->pen); + gr->painter->setBrush(*gc->brush); + gr->painter->drawPolygon(polygon); +} + +static void +draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int w, int h) +{ +// dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); + gr->painter->fillRect(p->x,p->y, w, h, *gc->brush); +} + +static void +draw_circle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int r) +{ +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d,%d) r=%d\n", gr, gc, p->x, p->y, r); + gr->painter->setPen(*gc->pen); + gr->painter->drawArc(p->x-r/2, p->y-r/2, r, r, 0, 360*16); +} + + +static void +draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics_gc_priv *bg, struct graphics_font_priv *font, char *text, struct point *p, int dx, int dy) +{ +// dbg(lvl_debug,"enter gc=%p, fg=%p, bg=%p pos(%d,%d) %s\n", gr, fg, bg, p->x, p->y, text); + QPainter *painter=gr->painter; +#ifdef QT_QPAINTER_USE_FREETYPE + struct font_freetype_text *t; + struct font_freetype_glyph *g, **gp; + struct color transparent = {0x0000, 0x0000, 0x0000, 0x0000}; + struct color fgc; + struct color bgc; + QColor temp; + + int i,x,y; + + if (! font) + return; + /* extract colors */ + fgc.r = fg->pen->color().red() << 8; + fgc.g = fg->pen->color().green() << 8; + fgc.b = fg->pen->color().blue() << 8; + fgc.a = fg->pen->color().alpha() << 8; + if(bg != NULL) + { + bgc.r = bg->pen->color().red() << 8; + bgc.g = bg->pen->color().green() << 8; + bgc.b = bg->pen->color().blue() << 8; + bgc.a = bg->pen->color().alpha() << 8; + } + else + bgc = transparent; + + t=gr->freetype_methods.text_new(text, (struct font_freetype_font *)font, dx, dy); + x=p->x << 6; + y=p->y << 6; + gp=t->glyph; + i=t->glyph_count; + if (bg) { + while (i-- > 0) { + g=*gp++; + if (g->w && g->h) { + unsigned char *data; + QImage img(g->w+2, g->h+2, QImage::Format_ARGB32_Premultiplied); + data=img.bits(); + gr->freetype_methods.get_shadow(g,(unsigned char *)data,img.bytesPerLine(),&bgc,&transparent); + + painter->drawImage(((x+g->x)>>6)-1, ((y+g->y)>>6)-1, img); + } + x+=g->dx; + y+=g->dy; + } + } + x=p->x << 6; + y=p->y << 6; + gp=t->glyph; + i=t->glyph_count; + while (i-- > 0) { + g=*gp++; + if (g->w && g->h) { + unsigned char *data; + QImage img(g->w, g->h, QImage::Format_ARGB32_Premultiplied); + data=img.bits(); + gr->freetype_methods.get_glyph(g,(unsigned char *)data,img.bytesPerLine(),&fgc,&bgc,&transparent); + painter->drawImage((x+g->x)>>6, (y+g->y)>>6, img); + } + x+=g->dx; + y+=g->dy; + } + gr->freetype_methods.text_destroy(t); +#else + QString tmp=QString::fromUtf8(text); + QMatrix sav=gr->painter->worldMatrix(); + QMatrix m(dx/65535.0,dy/65535.0,-dy/65535.0,dx/65535.0,p->x,p->y); + painter->setWorldMatrix(m,TRUE); + painter->setPen(*fg->pen); + painter->setFont(*font->font); + painter->drawText(0, 0, tmp); + painter->setWorldMatrix(sav); +#endif +} + +static void +draw_image(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, struct graphics_image_priv *img) +{ +// dbg(lvl_debug,"enter\n"); + if(gr->painter != NULL) + gr->painter->drawPixmap(p->x, p->y, *img->pixmap); + else + dbg(lvl_debug, "Try to draw image, but no painter\n"); +} + +static void draw_drag(struct graphics_priv *gr, struct point *p) +{ + if(p != NULL) + { + dbg(lvl_debug,"enter %p (%d,%d)\n", gr, p->x, p->y); + gr->widget->move(p->x, p->y); + } + else + { + dbg(lvl_debug,"enter %p (NULL)\n", gr); + gr->widget->move(0,0); + } +} + +static void +background_gc(struct graphics_priv *gr, struct graphics_gc_priv *gc) +{ +// dbg(lvl_debug,"register context %p on %p\n", gc, gr); + gr->background_graphics_gc_priv = gc; +} + +static void +draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) +{ + switch (mode) + { + case draw_mode_begin: + gr->use_count ++; + dbg(lvl_debug,"Begin drawing on context %p\n", gr); + if(gr->painter == NULL) + gr->painter = new QPainter(gr->pixmap); + else + dbg(lvl_debug, "drawing on %p already active\n", gr); + break; + case draw_mode_end: + dbg(lvl_debug,"End drawing on context %p\n", gr); + gr->use_count --; + if(gr->painter != NULL && gr->use_count == 0) + { + gr->painter->end(); + delete(gr->painter); + gr->painter = NULL; + /* call repaint on widget */ + gr->widget->repaint(); + } + else + dbg(lvl_debug, "Context %p not active!", gr) + + break; + default: + dbg(lvl_debug,"Unknown drawing %d on context %p\n", mode, gr); + break; + } +} + +static struct graphics_priv * overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h, int wraparound); + +void +resize_callback(int w, int h) +{ + dbg(lvl_debug,"enter (%d, %d)\n", w, h); + callback_list_call_attr_2(callbacks, attr_resize, + GINT_TO_POINTER(w), GINT_TO_POINTER(h)); +} + +static int +graphics_qt5_fullscreen(struct window *w, int on) +{ + struct graphics_priv * gr; + dbg(lvl_debug,"enter\n"); + gr = (struct graphics_priv *) w->priv; + if(on) + gr->widget->setWindowState(Qt::WindowFullScreen); + else + gr->widget->setWindowState(Qt::WindowMaximized); + return 1; +} + +static void +graphics_qt5_disable_suspend(struct window *w) +{ + dbg(lvl_debug,"enter\n"); +} + +static void * +get_data(struct graphics_priv *this_priv, char const *type) +{ + dbg(lvl_debug,"enter: %s\n", type); + if (strcmp(type, "window") == 0) { + struct window *win; +// dbg(lvl_debug,"window detected\n"); + win = g_new0(struct window, 1); + win->priv = this_priv; + win->fullscreen = graphics_qt5_fullscreen; + win->disable_suspend = graphics_qt5_disable_suspend; + resize_callback(this_priv->widget->width(),this_priv->widget->height()); + return win; + } + return NULL; +} + +static void image_free(struct graphics_priv *gr, struct graphics_image_priv *priv) +{ + //dbg(lvl_debug,"enter\n"); + delete(priv->pixmap); + g_free(priv); +} + +static void get_text_bbox(struct graphics_priv *gr, struct graphics_font_priv *font, char *text, int dx, int dy, struct point *ret, int estimate) +{ +// dbg(lvl_debug,"enter %s %d %d\n", text, dx, dy); + QPainter *painter=gr->painter; + QString tmp=QString::fromUtf8(text); + if(gr->painter != NULL) + { + gr->painter->setFont(*font->font); + QRect r=painter->boundingRect(0,0,gr->pixmap->width(),gr->pixmap->height(),0,tmp); +// dbg (lvl_debug, "Text bbox: %d %d (%d,%d),(%d,%d)\n",dx, dy, r.left(), r.top(), r.right(), r.bottom()); + /* low left */ + ret[0].x = r.left(); + ret[0].y = r.bottom(); + /* top left */ + ret[1].x = r.left(); + ret[1].y = r.top(); + /* top right */ + ret[2].x = r.right(); + ret[2].y = r.top(); + /* low right */ + ret[3].x = r.right(); + ret[3].y = r.bottom(); + } +} + +static void overlay_disable(struct graphics_priv *gr, int disable) +{ + GHashTableIter iter; + struct graphics_priv * key, * value; +// dbg(lvl_debug,"enter gr=%p, %d\n", gr, disable); + + g_hash_table_iter_init (&iter, gr->overlays); + while (g_hash_table_iter_next (&iter, (void **)&key, (void **)&value)) + { + /* disable or enable all overlays of this pane */ + value->widget->setVisible(!disable); + } +} + +static void overlay_resize(struct graphics_priv *gr, struct point *p, int w, int h, int wraparound) +{ + dbg(lvl_debug,"enter\n"); + + gr->widget->move(p->x, p->y); + gr->widget->setFixedSize(w, h); + if(gr->painter != NULL) + { + delete(gr->painter); + } + delete(gr->pixmap); + gr->pixmap = new QPixmap(gr->widget->size()); + if(gr->painter != NULL) + gr->painter = new QPainter (gr->pixmap); +} + +static struct graphics_methods graphics_methods = { + graphics_destroy, + draw_mode, + draw_lines, + draw_polygon, + draw_rectangle, + draw_circle, + draw_text, + draw_image, + NULL, + draw_drag, + font_new, + gc_new, + background_gc, + overlay_new, + image_new, + get_data, + image_free, + get_text_bbox, + overlay_disable, + overlay_resize, +}; + +/* create new graphics context on given context */ +static struct graphics_priv * +overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h, int wraparound) +{ + struct graphics_priv * graphics_priv = NULL; + graphics_priv = g_new0(struct graphics_priv, 1); +#ifdef QT_QPAINTER_USE_FREETYPE + if (gr->font_freetype_new) { + graphics_priv->font_freetype_new=gr->font_freetype_new; + gr->font_freetype_new(&graphics_priv->freetype_methods); + meth->font_new=(struct graphics_font_priv *(*)(struct graphics_priv *, struct graphics_font_methods *, char *, int, int))graphics_priv->freetype_methods.font_new; + meth->get_text_bbox=(void (*)(struct graphics_priv*, struct graphics_font_priv*, char*, int, int, struct point*, int))graphics_priv->freetype_methods.get_text_bbox; + } +#endif + graphics_priv->widget = new QNavitWidget(graphics_priv, gr->widget, Qt::Widget); + graphics_priv->widget->move(p->x, p->y); + graphics_priv->widget->setFixedSize(w, h); + graphics_priv->widget->setVisible(true); + graphics_priv->pixmap = new QPixmap(graphics_priv->widget->size()); + graphics_priv->painter = NULL; + graphics_priv->use_count = 0; + graphics_priv->parent = gr; + graphics_priv->overlays=g_hash_table_new(NULL, NULL); + /* register on parent */ + g_hash_table_insert(gr->overlays, graphics_priv, graphics_priv); + dbg(lvl_debug,"New overlay: %p\n", graphics_priv); + + *meth=graphics_methods; + return graphics_priv; +} + +static int argc=3; +static char *argv[]={"navit","-platform","wayland", NULL}; + +/* create application and initial graphics context */ +static struct graphics_priv * +graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr **attrs, struct callback_list *cbl) +{ + struct graphics_priv * graphics_priv = NULL; + struct attr *event_loop_system = NULL; + *meth=graphics_methods; + dbg(lvl_debug,"enter\n"); + + event_loop_system = attr_search(attrs, NULL, attr_event_loop_system); + + if (event_loop_system && event_loop_system->u.str) { + dbg(lvl_debug, "event_system is %s\n", event_loop_system->u.str); + if (!event_request_system(event_loop_system->u.str, "graphics_qt5")) + return NULL; + } else { + if (!event_request_system("qt5", "graphics_qt5")) + return NULL; + } +#ifdef QT_QPAINTER_USE_FREETYPE + struct font_priv * (*font_freetype_new)(void *meth); + /* get font plugin if present */ + font_freetype_new=(struct font_priv *(*)(void *))plugin_get_font_type("freetype"); + if (!font_freetype_new) { + dbg(lvl_error,"no freetype\n"); + return NULL; + } +#endif + + + /* create surrounding application */ + navit_app = new QApplication(argc, argv); + /* create root graphics layer */ + graphics_priv = g_new0(struct graphics_priv, 1); + +#ifdef QT_QPAINTER_USE_FREETYPE + graphics_priv->font_freetype_new=font_freetype_new; + font_freetype_new(&graphics_priv->freetype_methods); + meth->font_new=(struct graphics_font_priv *(*)(struct graphics_priv *, struct graphics_font_methods *, char *, int, int))graphics_priv->freetype_methods.font_new; + meth->get_text_bbox=(void (*)(struct graphics_priv*, struct graphics_font_priv*, char*, int, int, struct point*, int))graphics_priv->freetype_methods.get_text_bbox; +#endif + + graphics_priv->widget = new QNavitWidget(graphics_priv,NULL,Qt::Window); + QRect geomet = navit_app->desktop()->screenGeometry(graphics_priv->widget); + graphics_priv->widget->setFixedSize(geomet.width(), geomet.height()); + /* on most platforms we may want to show this maximized at least */ + //graphics_priv->widget->setWindowState(Qt::WindowFullScreen); + /* generate initial pixmap same size as window */ + graphics_priv->pixmap = new QPixmap(graphics_priv->widget->size()); + graphics_priv->use_count = 0; + graphics_priv->painter = NULL; + graphics_priv->widget->show(); + graphics_priv->parent = NULL; + graphics_priv->overlays=g_hash_table_new(NULL, NULL); + callbacks = cbl; + resize_callback(graphics_priv->widget->width(),graphics_priv->widget->height()); + return graphics_priv; +} + +void +plugin_init(void) +{ + dbg(lvl_debug,"enter\n"); + plugin_register_graphics_type("qt5", graphics_qt5_new); + qt5_event_init(); +} diff --git a/navit/graphics/qt5/graphics_qt5.h b/navit/graphics/qt5/graphics_qt5.h new file mode 100644 index 000000000..fb3c29f8d --- /dev/null +++ b/navit/graphics/qt5/graphics_qt5.h @@ -0,0 +1,50 @@ +#ifndef __graphics_qt_h +#define __graphics_qt_h +#include +#include +#include +#include +#include +#include +#include "QNavitWidget.h" + +#ifndef QT_QPAINTER_USE_FREETYPE +#define QT_QPAINTER_USE_FREETYPE 1 +#endif + +#ifdef QT_QPAINTER_USE_FREETYPE +#include "navit/font/freetype/font_freetype.h" +#endif + +struct graphics_gc_priv; +struct graphics_priv; + +struct graphics_priv { + QNavitWidget * widget; + QPixmap * pixmap; + QPainter * painter; + int use_count; + struct graphics_gc_priv * background_graphics_gc_priv; +#ifdef QT_QPAINTER_USE_FREETYPE + struct font_priv * (*font_freetype_new)(void *meth); + struct font_freetype_methods freetype_methods; +#endif + GHashTable *overlays; + struct graphics_priv * parent; +}; + +struct graphics_gc_priv { + struct graphics_priv * graphics_priv; + QPen * pen; + QBrush * brush; +}; +/* central exported application info */ +extern QApplication * navit_app; + +/* navit callback list */ +extern struct callback_list* callbacks; + +void +resize_callback(int w, int h); + +#endif \ No newline at end of file -- cgit v1.2.1 From 52bc28916b9c6b2026fa1cfa4dfc64444de1e29f Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sun, 22 Nov 2015 17:34:29 +0100 Subject: Fix overlay text functions. --- navit/graphics/qt5/graphics_qt5.cpp | 48 ++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 1e7154869..07964a266 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -100,9 +100,12 @@ static struct graphics_font_methods font_methods = { static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct graphics_font_methods *meth, char *font, int size, int flags) { struct graphics_font_priv *font_priv; -// dbg(lvl_debug,"enter (font %s, %d)\n", font, size); + dbg(lvl_debug,"enter (font %s, %d)\n", font, size); font_priv = g_new0(struct graphics_font_priv, 1); - font_priv->font=new QFont(font,size/16); + if(font != NULL) + font_priv->font=new QFont(font,size/16); + else + font_priv->font=new QFont("Arial",size/16); font_priv->font->setStyleStrategy(QFont::NoAntialias); *meth=font_methods; return font_priv; @@ -111,7 +114,7 @@ static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct grap static void gc_destroy(struct graphics_gc_priv *gc) { -// dbg(lvl_debug,"enter gc=%p\n", gc); + dbg(lvl_debug,"enter gc=%p\n", gc); delete(gc->pen); delete(gc->brush); g_free(gc); @@ -120,7 +123,7 @@ gc_destroy(struct graphics_gc_priv *gc) static void gc_set_linewidth(struct graphics_gc_priv *gc, int w) { - //dbg(lvl_debug,"enter gc=%p, %d\n", gc, w); + dbg(lvl_debug,"enter gc=%p, %d\n", gc, w); gc->pen->setWidth(w); } @@ -139,7 +142,7 @@ static void gc_set_foreground(struct graphics_gc_priv *gc, struct color *c) { QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); - //dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); + dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); gc->pen->setColor(col); gc->brush->setColor(col); //gc->c=*c; @@ -149,7 +152,7 @@ static void gc_set_background(struct graphics_gc_priv *gc, struct color *c) { QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); - //dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); + dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); //gc->pen->setColor(col); //gc->brush->setColor(col); } @@ -165,7 +168,7 @@ static struct graphics_gc_methods gc_methods = { static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics_gc_methods *meth) { struct graphics_gc_priv * graphics_gc_priv = NULL; -// dbg(lvl_debug,"enter gr==%p\n", gr); + dbg(lvl_debug,"enter gr==%p\n", gr); graphics_gc_priv = g_new0(struct graphics_gc_priv, 1); graphics_gc_priv->graphics_priv = gr; graphics_gc_priv->pen=new QPen(); @@ -177,7 +180,7 @@ static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics static void image_destroy(struct graphics_image_priv *img) { -// dbg(lvl_debug, "enter\n"); + dbg(lvl_debug, "enter\n"); if(img->pixmap != NULL) delete(img->pixmap); g_free(img); @@ -241,7 +244,9 @@ draw_lines(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point * { int i; QPolygon polygon; -// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + if(gr->painter == NULL) + return; for (i = 0 ; i < count ; i++) polygon.putPoints(i, 1, p[i].x, p[i].y); @@ -255,7 +260,9 @@ draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point { int i; QPolygon polygon; -// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); + if(gr->painter == NULL) + return; for (i = 0 ; i < count ; i++) polygon.putPoints(i, 1, p[i].x, p[i].y); @@ -267,14 +274,18 @@ draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point static void draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int w, int h) { -// dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); + dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); + if(gr->painter == NULL) + return; gr->painter->fillRect(p->x,p->y, w, h, *gc->brush); } static void draw_circle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int r) { -// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d,%d) r=%d\n", gr, gc, p->x, p->y, r); + dbg(lvl_debug,"enter gr=%p, gc=%p, (%d,%d) r=%d\n", gr, gc, p->x, p->y, r); + if(gr->painter == NULL) + return; gr->painter->setPen(*gc->pen); gr->painter->drawArc(p->x-r/2, p->y-r/2, r, r, 0, 360*16); } @@ -283,8 +294,10 @@ draw_circle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point static void draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics_gc_priv *bg, struct graphics_font_priv *font, char *text, struct point *p, int dx, int dy) { -// dbg(lvl_debug,"enter gc=%p, fg=%p, bg=%p pos(%d,%d) %s\n", gr, fg, bg, p->x, p->y, text); + dbg(lvl_debug,"enter gc=%p, fg=%p, bg=%p pos(%d,%d) %s\n", gr, fg, bg, p->x, p->y, text); QPainter *painter=gr->painter; + if(painter == NULL) + return; #ifdef QT_QPAINTER_USE_FREETYPE struct font_freetype_text *t; struct font_freetype_glyph *g, **gp; @@ -310,7 +323,9 @@ draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics bgc.a = bg->pen->color().alpha() << 8; } else + { bgc = transparent; + } t=gr->freetype_methods.text_new(text, (struct font_freetype_font *)font, dx, dy); x=p->x << 6; @@ -359,12 +374,13 @@ draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics painter->drawText(0, 0, tmp); painter->setWorldMatrix(sav); #endif + dbg(lvl_debug,"leave\n"); } static void draw_image(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, struct graphics_image_priv *img) { -// dbg(lvl_debug,"enter\n"); + dbg(lvl_debug,"enter\n"); if(gr->painter != NULL) gr->painter->drawPixmap(p->x, p->y, *img->pixmap); else @@ -388,7 +404,7 @@ static void draw_drag(struct graphics_priv *gr, struct point *p) static void background_gc(struct graphics_priv *gr, struct graphics_gc_priv *gc) { -// dbg(lvl_debug,"register context %p on %p\n", gc, gr); + dbg(lvl_debug,"register context %p on %p\n", gc, gr); gr->background_graphics_gc_priv = gc; } @@ -563,6 +579,7 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin { struct graphics_priv * graphics_priv = NULL; graphics_priv = g_new0(struct graphics_priv, 1); + *meth=graphics_methods; #ifdef QT_QPAINTER_USE_FREETYPE if (gr->font_freetype_new) { graphics_priv->font_freetype_new=gr->font_freetype_new; @@ -584,7 +601,6 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin g_hash_table_insert(gr->overlays, graphics_priv, graphics_priv); dbg(lvl_debug,"New overlay: %p\n", graphics_priv); - *meth=graphics_methods; return graphics_priv; } -- cgit v1.2.1 From f0fc887283073f17764f690112e2bb961c371961 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sun, 22 Nov 2015 20:05:18 +0100 Subject: Remove most debug messages --- navit/graphics/qt5/graphics_qt5.cpp | 57 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 07964a266..77bde3253 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -100,7 +100,7 @@ static struct graphics_font_methods font_methods = { static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct graphics_font_methods *meth, char *font, int size, int flags) { struct graphics_font_priv *font_priv; - dbg(lvl_debug,"enter (font %s, %d)\n", font, size); +// dbg(lvl_debug,"enter (font %s, %d)\n", font, size); font_priv = g_new0(struct graphics_font_priv, 1); if(font != NULL) font_priv->font=new QFont(font,size/16); @@ -114,7 +114,7 @@ static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct grap static void gc_destroy(struct graphics_gc_priv *gc) { - dbg(lvl_debug,"enter gc=%p\n", gc); +// dbg(lvl_debug,"enter gc=%p\n", gc); delete(gc->pen); delete(gc->brush); g_free(gc); @@ -123,7 +123,7 @@ gc_destroy(struct graphics_gc_priv *gc) static void gc_set_linewidth(struct graphics_gc_priv *gc, int w) { - dbg(lvl_debug,"enter gc=%p, %d\n", gc, w); +// dbg(lvl_debug,"enter gc=%p, %d\n", gc, w); gc->pen->setWidth(w); } @@ -142,7 +142,7 @@ static void gc_set_foreground(struct graphics_gc_priv *gc, struct color *c) { QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); - dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); +// dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); gc->pen->setColor(col); gc->brush->setColor(col); //gc->c=*c; @@ -152,7 +152,7 @@ static void gc_set_background(struct graphics_gc_priv *gc, struct color *c) { QColor col(c->r >> 8, c->g >> 8, c->b >> 8, c->a >> 8 ); - dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); +// dbg(lvl_debug,"context %p: color %02x%02x%02x\n",gc, c->r >> 8, c->g >> 8, c->b >> 8); //gc->pen->setColor(col); //gc->brush->setColor(col); } @@ -168,7 +168,7 @@ static struct graphics_gc_methods gc_methods = { static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics_gc_methods *meth) { struct graphics_gc_priv * graphics_gc_priv = NULL; - dbg(lvl_debug,"enter gr==%p\n", gr); +// dbg(lvl_debug,"enter gr==%p\n", gr); graphics_gc_priv = g_new0(struct graphics_gc_priv, 1); graphics_gc_priv->graphics_priv = gr; graphics_gc_priv->pen=new QPen(); @@ -180,7 +180,7 @@ static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics static void image_destroy(struct graphics_image_priv *img) { - dbg(lvl_debug, "enter\n"); +// dbg(lvl_debug, "enter\n"); if(img->pixmap != NULL) delete(img->pixmap); g_free(img); @@ -195,7 +195,7 @@ static struct graphics_image_priv * image_new(struct graphics_priv *gr, struct graphics_image_methods *meth, char *path, int *w, int *h, struct point *hot, int rotation) { struct graphics_image_priv * image_priv; - dbg(lvl_debug,"enter %s, %d %d\n", path, *w, *h); +// dbg(lvl_debug,"enter %s, %d %d\n", path, *w, *h); if(*w == -1) *w = 16; if(*h == -1) *h = 16; // QPixmap *cachedPixmap; @@ -244,7 +244,7 @@ draw_lines(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point * { int i; QPolygon polygon; - dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); if(gr->painter == NULL) return; @@ -260,7 +260,7 @@ draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point { int i; QPolygon polygon; - dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d, %d)\n", gr, gc, p->x, p->y); if(gr->painter == NULL) return; @@ -274,7 +274,7 @@ draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point static void draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int w, int h) { - dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); +// dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); if(gr->painter == NULL) return; gr->painter->fillRect(p->x,p->y, w, h, *gc->brush); @@ -283,7 +283,7 @@ draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct poi static void draw_circle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int r) { - dbg(lvl_debug,"enter gr=%p, gc=%p, (%d,%d) r=%d\n", gr, gc, p->x, p->y, r); +// dbg(lvl_debug,"enter gr=%p, gc=%p, (%d,%d) r=%d\n", gr, gc, p->x, p->y, r); if(gr->painter == NULL) return; gr->painter->setPen(*gc->pen); @@ -294,7 +294,7 @@ draw_circle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point static void draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics_gc_priv *bg, struct graphics_font_priv *font, char *text, struct point *p, int dx, int dy) { - dbg(lvl_debug,"enter gc=%p, fg=%p, bg=%p pos(%d,%d) %s\n", gr, fg, bg, p->x, p->y, text); +// dbg(lvl_debug,"enter gc=%p, fg=%p, bg=%p pos(%d,%d) %s\n", gr, fg, bg, p->x, p->y, text); QPainter *painter=gr->painter; if(painter == NULL) return; @@ -374,13 +374,12 @@ draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics painter->drawText(0, 0, tmp); painter->setWorldMatrix(sav); #endif - dbg(lvl_debug,"leave\n"); } static void draw_image(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, struct graphics_image_priv *img) { - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); if(gr->painter != NULL) gr->painter->drawPixmap(p->x, p->y, *img->pixmap); else @@ -391,12 +390,12 @@ static void draw_drag(struct graphics_priv *gr, struct point *p) { if(p != NULL) { - dbg(lvl_debug,"enter %p (%d,%d)\n", gr, p->x, p->y); +// dbg(lvl_debug,"enter %p (%d,%d)\n", gr, p->x, p->y); gr->widget->move(p->x, p->y); } else { - dbg(lvl_debug,"enter %p (NULL)\n", gr); +// dbg(lvl_debug,"enter %p (NULL)\n", gr); gr->widget->move(0,0); } } @@ -404,7 +403,7 @@ static void draw_drag(struct graphics_priv *gr, struct point *p) static void background_gc(struct graphics_priv *gr, struct graphics_gc_priv *gc) { - dbg(lvl_debug,"register context %p on %p\n", gc, gr); +// dbg(lvl_debug,"register context %p on %p\n", gc, gr); gr->background_graphics_gc_priv = gc; } @@ -415,14 +414,14 @@ draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) { case draw_mode_begin: gr->use_count ++; - dbg(lvl_debug,"Begin drawing on context %p\n", gr); +// dbg(lvl_debug,"Begin drawing on context %p\n", gr); if(gr->painter == NULL) gr->painter = new QPainter(gr->pixmap); else dbg(lvl_debug, "drawing on %p already active\n", gr); break; case draw_mode_end: - dbg(lvl_debug,"End drawing on context %p\n", gr); +// dbg(lvl_debug,"End drawing on context %p\n", gr); gr->use_count --; if(gr->painter != NULL && gr->use_count == 0) { @@ -447,7 +446,7 @@ static struct graphics_priv * overlay_new(struct graphics_priv *gr, struct graph void resize_callback(int w, int h) { - dbg(lvl_debug,"enter (%d, %d)\n", w, h); +// dbg(lvl_debug,"enter (%d, %d)\n", w, h); callback_list_call_attr_2(callbacks, attr_resize, GINT_TO_POINTER(w), GINT_TO_POINTER(h)); } @@ -456,7 +455,7 @@ static int graphics_qt5_fullscreen(struct window *w, int on) { struct graphics_priv * gr; - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); gr = (struct graphics_priv *) w->priv; if(on) gr->widget->setWindowState(Qt::WindowFullScreen); @@ -468,13 +467,13 @@ graphics_qt5_fullscreen(struct window *w, int on) static void graphics_qt5_disable_suspend(struct window *w) { - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); } static void * get_data(struct graphics_priv *this_priv, char const *type) { - dbg(lvl_debug,"enter: %s\n", type); +// dbg(lvl_debug,"enter: %s\n", type); if (strcmp(type, "window") == 0) { struct window *win; // dbg(lvl_debug,"window detected\n"); @@ -536,7 +535,7 @@ static void overlay_disable(struct graphics_priv *gr, int disable) static void overlay_resize(struct graphics_priv *gr, struct point *p, int w, int h, int wraparound) { - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); gr->widget->move(p->x, p->y); gr->widget->setFixedSize(w, h); @@ -599,7 +598,7 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin graphics_priv->overlays=g_hash_table_new(NULL, NULL); /* register on parent */ g_hash_table_insert(gr->overlays, graphics_priv, graphics_priv); - dbg(lvl_debug,"New overlay: %p\n", graphics_priv); +// dbg(lvl_debug,"New overlay: %p\n", graphics_priv); return graphics_priv; } @@ -614,12 +613,12 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * struct graphics_priv * graphics_priv = NULL; struct attr *event_loop_system = NULL; *meth=graphics_methods; - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); event_loop_system = attr_search(attrs, NULL, attr_event_loop_system); if (event_loop_system && event_loop_system->u.str) { - dbg(lvl_debug, "event_system is %s\n", event_loop_system->u.str); +// dbg(lvl_debug, "event_system is %s\n", event_loop_system->u.str); if (!event_request_system(event_loop_system->u.str, "graphics_qt5")) return NULL; } else { @@ -669,7 +668,7 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * void plugin_init(void) { - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); plugin_register_graphics_type("qt5", graphics_qt5_new); qt5_event_init(); } -- cgit v1.2.1 From 2ef6a502c3afb86faf014cf32f94dc00b9ae581d Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sun, 22 Nov 2015 20:06:02 +0100 Subject: Add Qt5 based vehicle --- CMakeLists.txt | 8 ++ navit/vehicle/qt5/CMakeLists.txt | 6 + navit/vehicle/qt5/Makefile.am | 9 ++ navit/vehicle/qt5/vehicle_qt5.cpp | 289 ++++++++++++++++++++++++++++++++++++++ navit/vehicle/qt5/vehicle_qt5.h | 58 ++++++++ 5 files changed, 370 insertions(+) create mode 100644 navit/vehicle/qt5/CMakeLists.txt create mode 100644 navit/vehicle/qt5/Makefile.am create mode 100644 navit/vehicle/qt5/vehicle_qt5.cpp create mode 100644 navit/vehicle/qt5/vehicle_qt5.h diff --git a/CMakeLists.txt b/CMakeLists.txt index a240b6630..168275814 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,6 +99,7 @@ add_module(binding/python "python libraries not found" FALSE) add_module(speech/dbus "dbus-glib-1 not found" FALSE) add_module(speech/cmdline "neither system() nor CreateProcess() found" FALSE) add_module(vehicle/gpsd_dbus "dbus-glib-1 not found" FALSE) +add_module(vehicle/qt5 "Qt5 libraries not found" FALSE) add_module(speech/speech_dispatcher "speech_dispatcher lib not found" FALSE) add_module(autoload/osso "Default" FALSE) add_module(map/garmin "Garmin library not found" FALSE) @@ -158,6 +159,8 @@ libfind_pkg_check_modules(FONTCONFIG fontconfig) if (NOT DISABLE_QT) find_package(Qt5Widgets) find_package(Qt5Svg) + find_package(Qt5Positioning) + find_package(Qt5Sensors) #find_package(Qt5Declarative) if (Qt5Widgets_FOUND) else (Qt5Widgets_FOUND) @@ -314,6 +317,11 @@ if (Qt5Widgets_FOUND) ${Qt5Declarative_LIBRARIES} ${Qt5Svg_LIBRARIES}) endif () +if (Qt5Positioning_FOUND) + set_with_reason(vehicle/qt5 "Qt5 Positioning found" TRUE + ${Qt5Positioning_LIBRARIES} + ${Qt5Sensors_LIBRARIES}) +endif () if(GTK2_FOUND) # Include gtk.h with "SYSTEM" to avoid GCC compiler warning for gtkitemfactory.h. include_directories(SYSTEM ${GTK2_GTK_INCLUDE_DIR}) diff --git a/navit/vehicle/qt5/CMakeLists.txt b/navit/vehicle/qt5/CMakeLists.txt new file mode 100644 index 000000000..411d9d6ee --- /dev/null +++ b/navit/vehicle/qt5/CMakeLists.txt @@ -0,0 +1,6 @@ +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) +# Instruct CMake to run moc automatically when needed. +set(CMAKE_AUTOMOC ON) + +module_add_library(vehicle_qt5 vehicle_qt5.cpp) diff --git a/navit/vehicle/qt5/Makefile.am b/navit/vehicle/qt5/Makefile.am new file mode 100644 index 000000000..b4c0ebb92 --- /dev/null +++ b/navit/vehicle/qt5/Makefile.am @@ -0,0 +1,9 @@ +include $(top_srcdir)/Makefile.inc +AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_qt5 +if PLUGINS + modulevehicle_LTLIBRARIES = libvehicle_qt5.la +else + noinst_LTLIBRARIES = libvehicle_qt5.la +endif +libvehicle_null_la_SOURCES = vehicle_qt5.cpp +libvehicle_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/qt5/vehicle_qt5.cpp b/navit/vehicle/qt5/vehicle_qt5.cpp new file mode 100644 index 000000000..a69d633e3 --- /dev/null +++ b/navit/vehicle/qt5/vehicle_qt5.cpp @@ -0,0 +1,289 @@ +/** @file vehicle_null.c + * @brief null uses dbus signals + * + * Navit, a modular navigation system. + * Copyright (C) 2005-2008 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * @Author Tim Niemeyer + * @date 2008-2009 + */ + +#include "vehicle_qt5.h" +#include "vehicle_qt5.moc" + +QNavitGeoReceiver::QNavitGeoReceiver (QObject * parent, struct vehicle_priv * c):QObject(parent) +{ + priv = c; + if(priv->source != NULL) + { + connect(priv->source, SIGNAL(positionUpdated(QGeoPositionInfo)),this, SLOT(positionUpdated(QGeoPositionInfo))); + } + if(priv->satellites != NULL) + { + connect(priv->satellites, SIGNAL(satellitesInUseUpdated(const QList &)), this, SLOT(satellitesInUseUpdated(const QList &))); + connect(priv->satellites, SIGNAL(satellitesInViewUpdated(const QList &)), this, SLOT(satellitesInViewUpdated(const QList &))); + } +} +void QNavitGeoReceiver::satellitesInUseUpdated(const QList & sats) +{ + dbg(lvl_debug, "Sats in use: %d\n", sats.count()); + priv->sats_used = sats.count(); + callback_list_call_attr_0(priv->cbl, attr_position_sats_used); +} + +void QNavitGeoReceiver::satellitesInViewUpdated(const QList & sats) +{ + dbg(lvl_debug, "Sats in view: %d\n", sats.count()); + priv->sats = sats.count(); + callback_list_call_attr_0(priv->cbl, attr_position_qual); +} + +void QNavitGeoReceiver::positionUpdated(const QGeoPositionInfo &info) +{ + if(info.hasAttribute(QGeoPositionInfo::HorizontalAccuracy)) + { + dbg(lvl_debug,"Horizontal acc (%f)\n",info.attribute(QGeoPositionInfo::HorizontalAccuracy)); + priv->radius = info.attribute(QGeoPositionInfo::HorizontalAccuracy); + callback_list_call_attr_0(priv->cbl, attr_position_radius); + } + if(info.hasAttribute(QGeoPositionInfo::GroundSpeed)) + { + dbg(lvl_debug,"Got ground speed (%f)\n",info.attribute(QGeoPositionInfo::GroundSpeed)); + priv->speed = info.attribute(QGeoPositionInfo::GroundSpeed) * 3.6; + callback_list_call_attr_0(priv->cbl, attr_position_speed); + } + if(info.hasAttribute(QGeoPositionInfo::Direction)) + { + dbg(lvl_debug,"Direction (%f)\n",info.attribute(QGeoPositionInfo::Direction)); + priv->direction = info.attribute(QGeoPositionInfo::Direction); + callback_list_call_attr_0(priv->cbl, attr_position_direction); + } + + switch(info.coordinate().type()) + { + case QGeoCoordinate::Coordinate3D: + priv->fix_type = 2; + break; + case QGeoCoordinate::Coordinate2D: + priv->fix_type = 1; + break; + case QGeoCoordinate::InvalidCoordinate: + priv->fix_type = 0; + break; + } + + + if(info.coordinate().isValid()) + { + dbg(lvl_debug, "Got valid coordinate (lat %f, lon %f)\n", info.coordinate().latitude(), info.coordinate().longitude()); + priv->geo.lat = info.coordinate().latitude(); + priv->geo.lng = info.coordinate().longitude(); + priv->have_coords = 1; + if(info.coordinate().type() == QGeoCoordinate::Coordinate3D) + { + dbg(lvl_debug,"Got valid altitude (alt %f)\n", info.coordinate().altitude()); + priv->height = info.coordinate().altitude(); + } + //dbg(lvl_debug, "Time %s\n", info.timestamp().toUTC().toString().toLatin1().data()); + priv->fix_time = info.timestamp().toUTC().toTime_t(); + callback_list_call_attr_0(priv->cbl, attr_position_coord_geo); + } + else + { + dbg(lvl_debug, "Got invalid coordinate\n"); + priv->have_coords = 0; + callback_list_call_attr_0(priv->cbl, attr_position_coord_geo); + } +} + + +/** + * @brief Free the null_vehicle + * + * @param priv + * @returns nothing + */ +static void +vehicle_qt5_destroy(struct vehicle_priv *priv) +{ + dbg(lvl_debug,"enter\n"); + if(priv->receiver != NULL) + delete priv->receiver; + if(priv->source != NULL) + delete priv->source; + g_free(priv); +} + +/** + * @brief Provide the outside with information + * + * @param priv + * @param type TODO: What can this be? + * @param attr + * @returns true/false + */ +static int +vehicle_qt5_position_attr_get(struct vehicle_priv *priv, + enum attr_type type, struct attr *attr) +{ + struct attr * active=NULL; + dbg(lvl_debug,"enter %s\n",attr_to_name(type)); + switch (type) { + case attr_position_valid: + attr->u.num = priv->have_coords; + break; + case attr_position_fix_type: + attr->u.num = priv->fix_type; + break; + case attr_position_height: + attr->u.numd = &priv->height; + break; + case attr_position_speed: + attr->u.numd = &priv->speed; + break; + case attr_position_direction: + attr->u.numd = &priv->direction; + break; + case attr_position_radius: + attr->u.numd = &priv->radius; + break; + case attr_position_qual: + attr->u.num = priv->sats; + break; + case attr_position_sats_used: + attr->u.num = priv->sats_used; + break; + case attr_position_coord_geo: + attr->u.coord_geo = &priv->geo; + if (!priv->have_coords) + return 0; + break; + case attr_position_time_iso8601: + if (priv->fix_time) { + struct tm tm; + if (gmtime_r(&priv->fix_time, &tm)) { + strftime(priv->fixiso8601, sizeof(priv->fixiso8601), + "%Y-%m-%dT%TZ", &tm); + attr->u.str=priv->fixiso8601; + } + else { + priv->fix_time = 0; + return 0; + } + //dbg(lvl_debug,"Fix Time: %s\n", priv->fixiso8601); + } + else { + //dbg(lvl_debug,"Fix Time: 0\n"); + return 0; + } + break; + + case attr_active: + active = attr_search(priv->attrs,NULL,attr_active); + if(active != NULL) { + attr->u.num=active->u.num; + return 1; + } else + return 0; + break; + + default: + return 0; + } + dbg(lvl_debug,"ok\n"); + attr->type = type; + return 1; +} + +static int +vehicle_qt5_set_attr(struct vehicle_priv *priv, struct attr *attr) +{ + switch (attr->type) { + case attr_position_speed: + priv->speed=*attr->u.numd; + break; + case attr_position_direction: + priv->direction=*attr->u.numd; + break; + case attr_position_coord_geo: + priv->geo=*attr->u.coord_geo; + priv->have_coords=1; + break; + default: + break; + } + callback_list_call_attr_0(priv->cbl, attr->type); + return 1; +} + + +struct vehicle_methods vehicle_null_methods = { + vehicle_qt5_destroy, + vehicle_qt5_position_attr_get, + vehicle_qt5_set_attr, +}; + +/** + * @brief Create null_vehicle + * + * @param meth + * @param cbl + * @param attrs + * @returns vehicle_priv + */ +static struct vehicle_priv * +vehicle_qt5_new_qt5(struct vehicle_methods *meth, + struct callback_list *cbl, + struct attr **attrs) +{ + struct vehicle_priv *ret; + + dbg(lvl_debug, "enter\n"); + ret = g_new0(struct vehicle_priv, 1); + ret->cbl = cbl; + *meth = vehicle_null_methods; + ret->attrs = attrs; + ret->source = QGeoPositionInfoSource::createDefaultSource(NULL); + ret->satellites = QGeoSatelliteInfoSource::createDefaultSource(NULL); + if(ret->source == NULL) + { + dbg(lvl_error, "Got NO QGeoPositionInfoSource\n"); + } + else + { + dbg(lvl_debug, "Using %s\n", ret->source->sourceName().toLatin1().data()); + ret->receiver = new QNavitGeoReceiver(NULL,ret); + ret->satellites->setUpdateInterval(1000); + ret->satellites->startUpdates(); + ret->source->setUpdateInterval(500); + ret->source->startUpdates(); + } + dbg(lvl_debug, "return\n"); + return ret; +} + +/** + * @brief register vehicle_null + * + * @returns nothing + */ +void +plugin_init(void) +{ + dbg(lvl_debug, "enter\n"); + plugin_register_vehicle_type("qt5", vehicle_qt5_new_qt5); +} diff --git a/navit/vehicle/qt5/vehicle_qt5.h b/navit/vehicle/qt5/vehicle_qt5.h new file mode 100644 index 000000000..c38c45284 --- /dev/null +++ b/navit/vehicle/qt5/vehicle_qt5.h @@ -0,0 +1,58 @@ +#ifndef __vehicle_qt5_h +#define __vehicle_qt5_h + +#include +#include +#include +#include +#include +#include "debug.h" +#include "plugin.h" +#include "coord.h" +#include "item.h" +#include "vehicle.h" + +#include +#include +#include +#include + +#include "callback.h" + +#include + +class QNavitGeoReceiver; +struct vehicle_priv { + struct callback_list *cbl; + struct coord_geo geo; + double speed; + double direction; + double height; + double radius; + int fix_type; + time_t fix_time; + char fixiso8601[128]; + int sats; + int sats_used; + int have_coords; + struct attr ** attrs; + + QGeoPositionInfoSource *source; + QGeoSatelliteInfoSource *satellites; + QNavitGeoReceiver * receiver; +}; + +class QNavitGeoReceiver : public QObject +{ + Q_OBJECT +public: + QNavitGeoReceiver (QObject * parent, struct vehicle_priv * c); +public slots: + void positionUpdated(const QGeoPositionInfo &info); + void satellitesInUseUpdated(const QList & satellites); + void satellitesInViewUpdated(const QList & satellites); + +private: + struct vehicle_priv * priv; +}; +#endif \ No newline at end of file -- cgit v1.2.1 From a37818166644d9b1c76b0021f984b01c81a0bfcc Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Wed, 25 Nov 2015 15:44:40 +0100 Subject: Add screen blanking for Sailfish OS. --- CMakeLists.txt | 4 +++- navit/graphics/qt5/graphics_qt5.cpp | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 168275814..819e7d450 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -159,6 +159,7 @@ libfind_pkg_check_modules(FONTCONFIG fontconfig) if (NOT DISABLE_QT) find_package(Qt5Widgets) find_package(Qt5Svg) + find_package(Qt5DBus) find_package(Qt5Positioning) find_package(Qt5Sensors) #find_package(Qt5Declarative) @@ -315,7 +316,8 @@ endif(QT_FOUND) if (Qt5Widgets_FOUND) set_with_reason(graphics/qt5 "Qt5 found" TRUE ${Qt5Widgets_LIBRARIES} ${Qt5Declarative_LIBRARIES} - ${Qt5Svg_LIBRARIES}) + ${Qt5Svg_LIBRARIES} + ${Qt5DBus_LIBRARIES}) endif () if (Qt5Positioning_FOUND) set_with_reason(vehicle/qt5 "Qt5 Positioning found" TRUE diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 77bde3253..e8793c2f9 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -44,7 +44,8 @@ #include #include #include - +#include +#include struct callback_list* callbacks; @@ -467,7 +468,12 @@ graphics_qt5_fullscreen(struct window *w, int on) static void graphics_qt5_disable_suspend(struct window *w) { -// dbg(lvl_debug,"enter\n"); + dbg(lvl_debug,"enter\n"); + QDBusConnection system = QDBusConnection::connectToBus(QDBusConnection::SystemBus, "system"); + QDBusInterface interface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request", system); + + interface.call(QLatin1String("req_display_blanking_pause")); +// interface.call(QLatin1String("req_display_cancel_blanking_pause")); } static void * -- cgit v1.2.1 From f7a7d22ab9bb8705c600d5579a923a2f029cddb3 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Wed, 25 Nov 2015 17:09:32 +0100 Subject: Sailfish needs periodic trigger for display on. --- navit/graphics/qt5/graphics_qt5.cpp | 34 ++++++++++++++++++++++++++++++---- navit/graphics/qt5/graphics_qt5.h | 9 +++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index e8793c2f9..640cba4be 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -47,7 +47,6 @@ #include #include - struct callback_list* callbacks; QApplication * navit_app = NULL; @@ -79,6 +78,16 @@ graphics_destroy(struct graphics_priv *gr) { g_hash_table_remove(gr->parent->overlays, gr); } +#ifdef SAILFISH_OS + if(gr->display_on_ev != NULL) + { + event_remove_timeout(gr->display_on_ev); + } + if(gr->display_on_cb != NULL) + { + g_free(gr->display_on_cb); + } +#endif /* destroy overlays hash */ g_hash_table_destroy(gr->overlays); /* destroy self */ @@ -465,15 +474,32 @@ graphics_qt5_fullscreen(struct window *w, int on) return 1; } +#ifdef SAILFISH_OS static void -graphics_qt5_disable_suspend(struct window *w) +keep_display_on(struct graphics_priv * priv) { dbg(lvl_debug,"enter\n"); QDBusConnection system = QDBusConnection::connectToBus(QDBusConnection::SystemBus, "system"); QDBusInterface interface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request", system); - interface.call(QLatin1String("req_display_blanking_pause")); -// interface.call(QLatin1String("req_display_cancel_blanking_pause")); + interface.call(QLatin1String("req_display_blanking_pause")); +} +#endif + + +static void +graphics_qt5_disable_suspend(struct window *w) +{ +// dbg(lvl_debug,"enter\n"); +#ifdef SAILFISH_OS + struct graphics_priv * gr; + gr = (struct graphics_priv *) w->priv; + keep_display_on(gr); + /* to keep display on, d-bus trigger must be called at least once per second. + * to cope with fuzz, trigger it once per 30 seconds */ + gr->display_on_cb = callback_new_1(callback_cast(keep_display_on), gr); + gr->display_on_ev = event_add_timeout(30000, 1, gr->display_on_cb); +#endif } static void * diff --git a/navit/graphics/qt5/graphics_qt5.h b/navit/graphics/qt5/graphics_qt5.h index fb3c29f8d..0f15a88fd 100644 --- a/navit/graphics/qt5/graphics_qt5.h +++ b/navit/graphics/qt5/graphics_qt5.h @@ -12,6 +12,11 @@ #define QT_QPAINTER_USE_FREETYPE 1 #endif +#ifndef SAILFISH_OS +#define SAILFISH_OS 1 +#endif + + #ifdef QT_QPAINTER_USE_FREETYPE #include "navit/font/freetype/font_freetype.h" #endif @@ -28,6 +33,10 @@ struct graphics_priv { #ifdef QT_QPAINTER_USE_FREETYPE struct font_priv * (*font_freetype_new)(void *meth); struct font_freetype_methods freetype_methods; +#endif +#ifdef SAILFISH_OS + struct callback *display_on_cb; + struct event_timeout *display_on_ev; #endif GHashTable *overlays; struct graphics_priv * parent; -- cgit v1.2.1 From 27a8224da8cb2eeca1e1e4b870b3eecd08672459 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sun, 29 Nov 2015 16:14:27 +0100 Subject: Clear surfaces if transparent. Fix dash setting. --- navit/graphics/qt5/graphics_qt5.cpp | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 640cba4be..198bcb9c7 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -143,8 +143,11 @@ gc_set_dashes(struct graphics_gc_priv *gc, int w, int offset, unsigned char *das /* use Qt dash feature */ QVector dashes; gc->pen->setWidth(w); + gc->pen->setDashOffset(offset); for(int a = 0; a < n; a ++) - dashes << dash_list[n]; + { + dashes << dash_list[a]; + } gc->pen->setDashPattern(dashes); } @@ -278,6 +281,14 @@ draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point polygon.putPoints(i, 1, p[i].x, p[i].y); gr->painter->setPen(*gc->pen); gr->painter->setBrush(*gc->brush); + /* if the polygon is transparent, we need to clear it first */ + if(!gc->brush->isOpaque()) + { + QPainter::CompositionMode mode = gr->painter->compositionMode(); + gr->painter->setCompositionMode(QPainter::CompositionMode_Clear); + gr->painter->drawPolygon(polygon); + gr->painter->setCompositionMode(mode); + } gr->painter->drawPolygon(polygon); } @@ -287,6 +298,14 @@ draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct poi // dbg(lvl_debug,"gr=%p gc=%p %d,%d,%d,%d\n", gr, gc, p->x, p->y, w, h); if(gr->painter == NULL) return; + /* if the rectangle is transparent, we need to clear it first */ + if(!gc->brush->isOpaque()) + { + QPainter::CompositionMode mode = gr->painter->compositionMode(); + gr->painter->setCompositionMode(QPainter::CompositionMode_Clear); + gr->painter->fillRect(p->x,p->y, w, h, *gc->brush); + gr->painter->setCompositionMode(mode); + } gr->painter->fillRect(p->x,p->y, w, h, *gc->brush); } @@ -424,14 +443,14 @@ draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) { case draw_mode_begin: gr->use_count ++; -// dbg(lvl_debug,"Begin drawing on context %p\n", gr); + dbg(lvl_debug,"Begin drawing on context %p\n", gr); if(gr->painter == NULL) gr->painter = new QPainter(gr->pixmap); else dbg(lvl_debug, "drawing on %p already active\n", gr); break; case draw_mode_end: -// dbg(lvl_debug,"End drawing on context %p\n", gr); + dbg(lvl_debug,"End drawing on context %p\n", gr); gr->use_count --; if(gr->painter != NULL && gr->use_count == 0) { @@ -478,7 +497,7 @@ graphics_qt5_fullscreen(struct window *w, int on) static void keep_display_on(struct graphics_priv * priv) { - dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); QDBusConnection system = QDBusConnection::connectToBus(QDBusConnection::SystemBus, "system"); QDBusInterface interface("com.nokia.mce", "/com/nokia/mce/request", "com.nokia.mce.request", system); @@ -521,7 +540,7 @@ get_data(struct graphics_priv *this_priv, char const *type) static void image_free(struct graphics_priv *gr, struct graphics_image_priv *priv) { - //dbg(lvl_debug,"enter\n"); +// dbg(lvl_debug,"enter\n"); delete(priv->pixmap); g_free(priv); } -- cgit v1.2.1 From 7da72bcb7e72beb13d6bb8a2948987f420a76608 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Tue, 1 Dec 2015 09:30:08 +0100 Subject: Ignore old fix provided by Qt5 on startup --- navit/vehicle/qt5/vehicle_qt5.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/navit/vehicle/qt5/vehicle_qt5.cpp b/navit/vehicle/qt5/vehicle_qt5.cpp index a69d633e3..77dabcc29 100644 --- a/navit/vehicle/qt5/vehicle_qt5.cpp +++ b/navit/vehicle/qt5/vehicle_qt5.cpp @@ -24,7 +24,7 @@ #include "vehicle_qt5.h" #include "vehicle_qt5.moc" - +#include QNavitGeoReceiver::QNavitGeoReceiver (QObject * parent, struct vehicle_priv * c):QObject(parent) { priv = c; @@ -54,6 +54,17 @@ void QNavitGeoReceiver::satellitesInViewUpdated(const QList & void QNavitGeoReceiver::positionUpdated(const QGeoPositionInfo &info) { + + /* ignore stale view */ + if(info.coordinate().isValid()) + { + if(info.timestamp().toUTC().secsTo(QDateTime::currentDateTimeUtc()) > 20) + { + dbg(lvl_debug,"Ignoring old FIX\n"); + return; + } + } + if(info.hasAttribute(QGeoPositionInfo::HorizontalAccuracy)) { dbg(lvl_debug,"Horizontal acc (%f)\n",info.attribute(QGeoPositionInfo::HorizontalAccuracy)); -- cgit v1.2.1 From b96247eaf96ce2f8dd5069d5ec355ebc0f8affdd Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 3 Dec 2015 09:16:04 +0100 Subject: Improve dash handling. Cope with impair patterns. --- navit/graphics/qt5/graphics_qt5.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 198bcb9c7..73095d759 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -140,6 +140,10 @@ gc_set_linewidth(struct graphics_gc_priv *gc, int w) static void gc_set_dashes(struct graphics_gc_priv *gc, int w, int offset, unsigned char *dash_list, int n) { + if(n <= 0) + { + dbg(lvl_error, "Refuse to set dashes without dash pattern"); + } /* use Qt dash feature */ QVector dashes; gc->pen->setWidth(w); @@ -148,6 +152,13 @@ gc_set_dashes(struct graphics_gc_priv *gc, int w, int offset, unsigned char *das { dashes << dash_list[a]; } + /* Qt requires the pattern to have even element count. Add the last + * element twice if n doesn't divide by two + */ + if((n % 2) != 0) + { + dashes << dash_list[n-1]; + } gc->pen->setDashPattern(dashes); } -- cgit v1.2.1 From ebaffdaaf0fe2b6b239fd458945f907a853245e0 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Fri, 11 Dec 2015 10:42:54 +0100 Subject: Qt5 image loading more robust on navit image guessing --- navit/graphics/qt5/graphics_qt5.cpp | 97 ++++++++++++++++++++++++++----------- 1 file changed, 70 insertions(+), 27 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 73095d759..a2e9ca127 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -220,37 +220,80 @@ image_new(struct graphics_priv *gr, struct graphics_image_methods *meth, char *p { struct graphics_image_priv * image_priv; // dbg(lvl_debug,"enter %s, %d %d\n", path, *w, *h); - if(*w == -1) *w = 16; - if(*h == -1) *h = 16; -// QPixmap *cachedPixmap; + if(path[0] == 0) + { + dbg(lvl_debug,"Refuse to load image without path\n"); + return NULL; + } QString key(path); + QString renderer_key(key); + QString extension = key.right(key.lastIndexOf(".")); + QFile imagefile(key); + if(!imagefile.exists()) + { + /* file doesn't exit. Either navit wants us to guess file name by + * ommitting exstension, or the file does really not exist. + */ + if(extension != "") + { + /*file doesn't exist. give up */ + dbg(lvl_debug,"File %s does not exist\n",path); + return NULL; + } + else + { + /* add ".svg" for renderer to try .svg file first in renderer */ + dbg(lvl_debug, "Guess extension on %s\n", path); + renderer_key += ".svg"; + } + } image_priv = g_new0(struct graphics_image_priv, 1); *meth = image_methods; -// cachedPixmap=QPixmapCache::find(key); -// if (!cachedPixmap) { - if(1/*key.endsWith(".svg", Qt::CaseInsensitive)*/) { - QSvgRenderer renderer(key); - if (!renderer.isValid()) { - g_free(image_priv); - return NULL; - } - image_priv->pixmap=new QPixmap(/*renderer.defaultSize()*/*w, *h); - image_priv->pixmap->fill(Qt::transparent); - QPainter painter(image_priv->pixmap); - renderer.render(&painter); - - } else { - image_priv->pixmap=new QPixmap(path); - } - if (image_priv->pixmap->isNull()) { - g_free(image_priv); - return NULL; + + /* check if this can be rendered */ + if(renderer_key.endsWith("svg")) + { + QSvgRenderer renderer(renderer_key); + if(renderer.isValid()) + { + dbg(lvl_debug,"render %s\n", path); + /* try to render this */ + /* assume 16 pixel if size is not given */ + if(*w <= 0) *w = 16; + if(*h <= 0) *h = 16; + image_priv->pixmap=new QPixmap(*w, *h); + image_priv->pixmap->fill(Qt::transparent); + QPainter painter(image_priv->pixmap); + renderer.render(&painter); + } + } + + if (image_priv->pixmap == NULL) { + /*cannot be rendered. try to load it */ + dbg(lvl_debug,"cannot render %s\n",path); + image_priv->pixmap=new QPixmap(key); + } + + /* check if we got image */ + if (image_priv->pixmap->isNull()) { + g_free(image_priv); + return NULL; + } + else + { + /* check if we need to scale this */ + if((*w > 0) && (*h > 0)) + { + if((image_priv->pixmap->width() != *w) || + (image_priv->pixmap->height() != *h)) + { + dbg(lvl_debug,"scale pixmap %s, %d->%d,%d->%d\n",path, image_priv->pixmap->width(), *w, image_priv->pixmap->height(), *h); + QPixmap * scaled = new QPixmap(image_priv->pixmap->scaled(*w, *h,Qt::IgnoreAspectRatio,Qt::FastTransformation)); + delete (image_priv->pixmap); + image_priv->pixmap = scaled; } - -// QPixmapCache::insert(key,QPixmap(*image_priv->pixmap)); -// } else { -// image_priv->pixmap=new QPixmap(*cachedPixmap); -// } + } + } *w=image_priv->pixmap->width(); *h=image_priv->pixmap->height(); -- cgit v1.2.1 From d3013316bc6efbac5b6ba51efbc8bd556820814b Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Fri, 11 Dec 2015 11:01:54 +0100 Subject: Qt5: Use default svg size if size not given --- navit/graphics/qt5/graphics_qt5.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index a2e9ca127..9d24bbf7d 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -258,9 +258,9 @@ image_new(struct graphics_priv *gr, struct graphics_image_methods *meth, char *p { dbg(lvl_debug,"render %s\n", path); /* try to render this */ - /* assume 16 pixel if size is not given */ - if(*w <= 0) *w = 16; - if(*h <= 0) *h = 16; + /* assume "standard" size if size is not given */ + if(*w <= 0) *w = renderer.defaultSize().width(); + if(*h <= 0) *h = renderer.defaultSize().height(); image_priv->pixmap=new QPixmap(*w, *h); image_priv->pixmap->fill(Qt::transparent); QPainter painter(image_priv->pixmap); -- cgit v1.2.1 From 7a10ad88b65f126bef555ff3077f985e3dd055a4 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Tue, 3 Jan 2017 10:24:35 +0100 Subject: refactor: qt5: follow api changes brought with commit 60bc2797f0bd71d87a4eece306e2368afe2a8866 --- navit/graphics/qt5/event_qt5.cpp | 2 +- navit/graphics/qt5/graphics_qt5.cpp | 4 ++-- navit/vehicle/qt5/vehicle_qt5.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/navit/graphics/qt5/event_qt5.cpp b/navit/graphics/qt5/event_qt5.cpp index 12f23d954..400daf9e0 100644 --- a/navit/graphics/qt5/event_qt5.cpp +++ b/navit/graphics/qt5/event_qt5.cpp @@ -181,5 +181,5 @@ event_qt5_new(struct event_methods *meth) void qt5_event_init(void) { - plugin_register_event_type("qt5", event_qt5_new); + plugin_register_category_event("qt5", event_qt5_new); } diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 9d24bbf7d..907702fdc 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -733,7 +733,7 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * #ifdef QT_QPAINTER_USE_FREETYPE struct font_priv * (*font_freetype_new)(void *meth); /* get font plugin if present */ - font_freetype_new=(struct font_priv *(*)(void *))plugin_get_font_type("freetype"); + font_freetype_new=(struct font_priv *(*)(void *))plugin_get_category_font("freetype"); if (!font_freetype_new) { dbg(lvl_error,"no freetype\n"); return NULL; @@ -774,6 +774,6 @@ void plugin_init(void) { // dbg(lvl_debug,"enter\n"); - plugin_register_graphics_type("qt5", graphics_qt5_new); + plugin_register_category_graphics("qt5", graphics_qt5_new); qt5_event_init(); } diff --git a/navit/vehicle/qt5/vehicle_qt5.cpp b/navit/vehicle/qt5/vehicle_qt5.cpp index 77dabcc29..d6d33d7ab 100644 --- a/navit/vehicle/qt5/vehicle_qt5.cpp +++ b/navit/vehicle/qt5/vehicle_qt5.cpp @@ -296,5 +296,5 @@ void plugin_init(void) { dbg(lvl_debug, "enter\n"); - plugin_register_vehicle_type("qt5", vehicle_qt5_new_qt5); + plugin_register_category_vehicle("qt5", vehicle_qt5_new_qt5); } -- cgit v1.2.1 From 24c10862ac777f36bab1dd15bed8dd91cea7ae19 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Wed, 25 Jan 2017 23:48:36 +0100 Subject: Fix: Qt5: integer to pinter cast as suggested by GLib --- navit/graphics/qt5/event_qt5.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/navit/graphics/qt5/event_qt5.cpp b/navit/graphics/qt5/event_qt5.cpp index 400daf9e0..9cea3d921 100644 --- a/navit/graphics/qt5/event_qt5.cpp +++ b/navit/graphics/qt5/event_qt5.cpp @@ -61,15 +61,15 @@ void qt5_navit_timer :: timerEvent (QTimerEvent * event) int id=event->timerId(); void* multi = NULL; // dbg(lvl_debug, "TimerEvent (%d)\n", id); - struct callback *cb=(struct callback *)g_hash_table_lookup(timer_callback, (void *)id); + struct callback *cb=(struct callback *)g_hash_table_lookup(timer_callback, (void *)(long)id); if (cb) callback_call_0(cb); /* remove timer if it was oneshot timer */ - if (g_hash_table_lookup_extended(timer_type, (void *)id, NULL, &multi)) + if (g_hash_table_lookup_extended(timer_type, (void *)(long)id, NULL, &multi)) { /* it's still in the list */ - if(((int)multi) == 0) - event_qt5_remove_timeout((struct event_timeout *)id); + if(((int)(long)multi) == 0) + event_qt5_remove_timeout((struct event_timeout *)(long)id); } // dbg(lvl_debug, "TimerEvent (%d) leave\n", id); } @@ -122,9 +122,9 @@ event_qt5_add_timeout(int timeout, int multi, struct callback *cb) dbg(lvl_debug,"add timeout %d, mul %d, %p ==",timeout, multi, cb); id=qt5_timer->startTimer(timeout); dbg(lvl_debug,"%d\n", id); - g_hash_table_insert(qt5_timer->timer_callback, (void *)id, cb); - g_hash_table_insert(qt5_timer->timer_type, (void *)id, (void *)!!multi); - return (struct event_timeout *)id; + g_hash_table_insert(qt5_timer->timer_callback, (void *)(long)id, cb); + g_hash_table_insert(qt5_timer->timer_type, (void *)(long)id, (void *)(long)!!multi); + return (struct event_timeout *)(long)id; } static void -- cgit v1.2.1 From 55b355180411f80618d8e2768b8810724e423518 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 26 Jan 2017 01:30:29 +0100 Subject: Fix: Qt5: allow passing Qt backend via config.xml --- navit/attr_def.h | 2 +- navit/graphics/qt5/graphics_qt5.cpp | 35 ++++++++++++++++++++++++++++++----- navit/graphics/qt5/graphics_qt5.h | 5 ++++- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/navit/attr_def.h b/navit/attr_def.h index b3f77163b..2b0bad448 100644 --- a/navit/attr_def.h +++ b/navit/attr_def.h @@ -281,7 +281,7 @@ ATTR_UNUSED ATTR_UNUSED ATTR_UNUSED ATTR(window_title) -ATTR_UNUSED +ATTR(qt5_platform) ATTR_UNUSED /* poi */ ATTR_UNUSED diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 907702fdc..87fc82b63 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -90,6 +90,19 @@ graphics_destroy(struct graphics_priv *gr) #endif /* destroy overlays hash */ g_hash_table_destroy(gr->overlays); + /* destroy global application if destroying the last */ + if(gr->argc > 0 && navit_app != NULL) + { + delete (navit_app); + navit_app = NULL; + /* destroy argv if any */ + while(gr->argc > 0) + { + gr->argc --; + if(gr->argv[gr->argc] != NULL) + g_free(gr->argv[gr->argc]); + } + } /* destroy self */ g_free(gr); } @@ -701,6 +714,8 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin graphics_priv->use_count = 0; graphics_priv->parent = gr; graphics_priv->overlays=g_hash_table_new(NULL, NULL); + graphics_priv->argc=0; + graphics_priv->argv[0] = NULL; /* register on parent */ g_hash_table_insert(gr->overlays, graphics_priv, graphics_priv); // dbg(lvl_debug,"New overlay: %p\n", graphics_priv); @@ -708,15 +723,13 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin return graphics_priv; } -static int argc=3; -static char *argv[]={"navit","-platform","wayland", NULL}; - /* create application and initial graphics context */ static struct graphics_priv * graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr **attrs, struct callback_list *cbl) { struct graphics_priv * graphics_priv = NULL; struct attr *event_loop_system = NULL; + struct attr * platform=NULL; *meth=graphics_methods; // dbg(lvl_debug,"enter\n"); @@ -730,6 +743,7 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * if (!event_request_system("qt5", "graphics_qt5")) return NULL; } + #ifdef QT_QPAINTER_USE_FREETYPE struct font_priv * (*font_freetype_new)(void *meth); /* get font plugin if present */ @@ -741,10 +755,21 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * #endif - /* create surrounding application */ - navit_app = new QApplication(argc, argv); /* create root graphics layer */ graphics_priv = g_new0(struct graphics_priv, 1); + /* Prepare QT argc and argv */ + graphics_priv->argc = 0; + graphics_priv->argv[graphics_priv->argc] = g_strdup("navit"); + graphics_priv->argc ++; + if ((platform=attr_search(attrs, NULL, attr_qt5_platform))) + { + graphics_priv->argv[graphics_priv->argc] = g_strdup("-platform"); + graphics_priv->argc ++; + graphics_priv->argv[graphics_priv->argc] = g_strdup(platform->u.str); + graphics_priv->argc ++; + } + /* create surrounding application */ + navit_app = new QApplication(graphics_priv->argc, graphics_priv->argv); #ifdef QT_QPAINTER_USE_FREETYPE graphics_priv->font_freetype_new=font_freetype_new; diff --git a/navit/graphics/qt5/graphics_qt5.h b/navit/graphics/qt5/graphics_qt5.h index 0f15a88fd..1f27ddfa0 100644 --- a/navit/graphics/qt5/graphics_qt5.h +++ b/navit/graphics/qt5/graphics_qt5.h @@ -40,6 +40,8 @@ struct graphics_priv { #endif GHashTable *overlays; struct graphics_priv * parent; + int argc; + char * argv[4]; }; struct graphics_gc_priv { @@ -56,4 +58,5 @@ extern struct callback_list* callbacks; void resize_callback(int w, int h); -#endif \ No newline at end of file +#endif + -- cgit v1.2.1 From 3f77629fdfe769e75c331d24c2db27c4f6c2a8b2 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 26 Jan 2017 10:28:51 +0100 Subject: Fix: Qt5: clean up things even if there i no app object --- navit/graphics/qt5/graphics_qt5.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 87fc82b63..53f3dfcd6 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -91,9 +91,12 @@ graphics_destroy(struct graphics_priv *gr) /* destroy overlays hash */ g_hash_table_destroy(gr->overlays); /* destroy global application if destroying the last */ - if(gr->argc > 0 && navit_app != NULL) + if(gr->argc > 0) { - delete (navit_app); + if(navit_app != NULL) + { + delete (navit_app); + } navit_app = NULL; /* destroy argv if any */ while(gr->argc > 0) -- cgit v1.2.1 From 4cbd82825832873c6d4f554e07b83df3d0f1c0ec Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 26 Jan 2017 23:53:31 +0100 Subject: Fix: Qt5: fix resizing. Add config params w,h,fullscreen --- navit/graphics/qt5/QNavitWidget.cpp | 28 ++++++--- navit/graphics/qt5/QNavitWidget.h | 5 +- navit/graphics/qt5/graphics_qt5.cpp | 122 +++++++++++++++++++++++------------- 3 files changed, 99 insertions(+), 56 deletions(-) diff --git a/navit/graphics/qt5/QNavitWidget.cpp b/navit/graphics/qt5/QNavitWidget.cpp index df9038055..ea21de17f 100644 --- a/navit/graphics/qt5/QNavitWidget.cpp +++ b/navit/graphics/qt5/QNavitWidget.cpp @@ -69,17 +69,25 @@ void QNavitWidget :: paintEvent(QPaintEvent * event) } -void QNavitWidget :: do_resize(QSize size) +void QNavitWidget::resizeEvent(QResizeEvent * event) { - delete graphics_priv->pixmap; - graphics_priv->pixmap=new QPixmap(size); - graphics_priv->pixmap->fill(); - QPainter painter(graphics_priv->pixmap); - QBrush brush; - painter.fillRect(0, 0, size.width(), size.height(), brush); - dbg(lvl_debug,"size %dx%d\n", size.width(), size.height()); - dbg(lvl_debug,"pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height()); - resize_callback(size.width(),size.height()); + QPainter * painter = NULL; + if(graphics_priv->pixmap != NULL) + { + delete graphics_priv->pixmap; + graphics_priv->pixmap = NULL; + } + + graphics_priv->pixmap=new QPixmap(size()); + graphics_priv->pixmap->fill(); + painter = new QPainter(graphics_priv->pixmap); + QBrush brush; + painter->fillRect(0, 0, width(), height(), brush); + if(painter != NULL) + delete painter; + dbg(lvl_debug,"size %dx%d\n", width(), height()); + dbg(lvl_debug,"pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height()); + resize_callback(width(),height()); } void QNavitWidget::mouseEvent(int pressed, QMouseEvent *event) diff --git a/navit/graphics/qt5/QNavitWidget.h b/navit/graphics/qt5/QNavitWidget.h index 7fd3223cc..3b048ccf7 100644 --- a/navit/graphics/qt5/QNavitWidget.h +++ b/navit/graphics/qt5/QNavitWidget.h @@ -18,7 +18,7 @@ public: protected: virtual bool event(QEvent *event); virtual void paintEvent(QPaintEvent * event); - virtual void do_resize(QSize size); + virtual void resizeEvent(QResizeEvent * event); virtual void mouseEvent(int pressed, QMouseEvent *event); virtual void mousePressEvent(QMouseEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); @@ -29,4 +29,5 @@ protected: private: struct graphics_priv *graphics_priv; }; -#endif \ No newline at end of file +#endif + diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index 53f3dfcd6..db087af74 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -495,7 +495,6 @@ static void draw_drag(struct graphics_priv *gr, struct point *p) else { // dbg(lvl_debug,"enter %p (NULL)\n", gr); - gr->widget->move(0,0); } } @@ -512,17 +511,21 @@ draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) switch (mode) { case draw_mode_begin: + dbg(lvl_debug,"Begin drawing on context %p (use == %d)\n", gr, gr->use_count); gr->use_count ++; - dbg(lvl_debug,"Begin drawing on context %p\n", gr); if(gr->painter == NULL) gr->painter = new QPainter(gr->pixmap); else dbg(lvl_debug, "drawing on %p already active\n", gr); break; case draw_mode_end: - dbg(lvl_debug,"End drawing on context %p\n", gr); + dbg(lvl_debug,"End drawing on context %p (use == %d)\n", gr, gr->use_count); gr->use_count --; - if(gr->painter != NULL && gr->use_count == 0) + if(gr->use_count > 0) + { + dbg(lvl_debug, "drawing on %p still in use\n", gr); + } + else if(gr->painter != NULL) { gr->painter->end(); delete(gr->painter); @@ -531,7 +534,7 @@ draw_mode(struct graphics_priv *gr, enum draw_mode_num mode) gr->widget->repaint(); } else - dbg(lvl_debug, "Context %p not active!", gr) + dbg(lvl_debug, "Context %p not active!\n", gr) break; default: @@ -657,9 +660,8 @@ static void overlay_disable(struct graphics_priv *gr, int disable) static void overlay_resize(struct graphics_priv *gr, struct point *p, int w, int h, int wraparound) { // dbg(lvl_debug,"enter\n"); - gr->widget->move(p->x, p->y); - gr->widget->setFixedSize(w, h); + gr->widget->resize(w, h); if(gr->painter != NULL) { delete(gr->painter); @@ -710,7 +712,7 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin #endif graphics_priv->widget = new QNavitWidget(graphics_priv, gr->widget, Qt::Widget); graphics_priv->widget->move(p->x, p->y); - graphics_priv->widget->setFixedSize(w, h); + graphics_priv->widget->resize(w, h); graphics_priv->widget->setVisible(true); graphics_priv->pixmap = new QPixmap(graphics_priv->widget->size()); graphics_priv->painter = NULL; @@ -731,39 +733,43 @@ static struct graphics_priv * graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr **attrs, struct callback_list *cbl) { struct graphics_priv * graphics_priv = NULL; - struct attr *event_loop_system = NULL; - struct attr * platform=NULL; - *meth=graphics_methods; -// dbg(lvl_debug,"enter\n"); + struct attr * event_loop_system = NULL; + struct attr * platform = NULL; + struct attr * fullscreen = NULL; + //dbg(lvl_debug,"enter\n"); - event_loop_system = attr_search(attrs, NULL, attr_event_loop_system); + /*register graphic methods by copying in our predefined ones */ + *meth=graphics_methods; - if (event_loop_system && event_loop_system->u.str) { -// dbg(lvl_debug, "event_system is %s\n", event_loop_system->u.str); - if (!event_request_system(event_loop_system->u.str, "graphics_qt5")) - return NULL; - } else { - if (!event_request_system("qt5", "graphics_qt5")) + /* get event loop from config and request event loop*/ + event_loop_system = attr_search(attrs, NULL, attr_event_loop_system); + if (event_loop_system && event_loop_system->u.str) { + //dbg(lvl_debug, "event_system is %s\n", event_loop_system->u.str); + if (!event_request_system(event_loop_system->u.str, "graphics_qt5")) return NULL; - } + } else { + /* no event system requested by config. Default to our own */ + if (!event_request_system("qt5", "graphics_qt5")) + return NULL; + } #ifdef QT_QPAINTER_USE_FREETYPE - struct font_priv * (*font_freetype_new)(void *meth); + struct font_priv * (*font_freetype_new)(void *meth); /* get font plugin if present */ - font_freetype_new=(struct font_priv *(*)(void *))plugin_get_category_font("freetype"); - if (!font_freetype_new) { - dbg(lvl_error,"no freetype\n"); - return NULL; - } + font_freetype_new=(struct font_priv *(*)(void *))plugin_get_category_font("freetype"); + if (!font_freetype_new) { + dbg(lvl_error,"no freetype\n"); + return NULL; + } #endif - /* create root graphics layer */ graphics_priv = g_new0(struct graphics_priv, 1); - /* Prepare QT argc and argv */ + /* Prepare argc and argv to call Qt application*/ graphics_priv->argc = 0; graphics_priv->argv[graphics_priv->argc] = g_strdup("navit"); graphics_priv->argc ++; + /* Get qt platform from config */ if ((platform=attr_search(attrs, NULL, attr_qt5_platform))) { graphics_priv->argv[graphics_priv->argc] = g_strdup("-platform"); @@ -775,27 +781,55 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * navit_app = new QApplication(graphics_priv->argc, graphics_priv->argv); #ifdef QT_QPAINTER_USE_FREETYPE - graphics_priv->font_freetype_new=font_freetype_new; - font_freetype_new(&graphics_priv->freetype_methods); - meth->font_new=(struct graphics_font_priv *(*)(struct graphics_priv *, struct graphics_font_methods *, char *, int, int))graphics_priv->freetype_methods.font_new; - meth->get_text_bbox=(void (*)(struct graphics_priv*, struct graphics_font_priv*, char*, int, int, struct point*, int))graphics_priv->freetype_methods.get_text_bbox; + graphics_priv->font_freetype_new=font_freetype_new; + font_freetype_new(&graphics_priv->freetype_methods); + meth->font_new=(struct graphics_font_priv *(*)(struct graphics_priv *, struct graphics_font_methods *, char *, int, int))graphics_priv->freetype_methods.font_new; + meth->get_text_bbox=(void (*)(struct graphics_priv*, struct graphics_font_priv*, char*, int, int, struct point*, int))graphics_priv->freetype_methods.get_text_bbox; #endif - - graphics_priv->widget = new QNavitWidget(graphics_priv,NULL,Qt::Window); - QRect geomet = navit_app->desktop()->screenGeometry(graphics_priv->widget); - graphics_priv->widget->setFixedSize(geomet.width(), geomet.height()); - /* on most platforms we may want to show this maximized at least */ - //graphics_priv->widget->setWindowState(Qt::WindowFullScreen); - /* generate initial pixmap same size as window */ - graphics_priv->pixmap = new QPixmap(graphics_priv->widget->size()); + callbacks = cbl; + graphics_priv->pixmap = NULL; graphics_priv->use_count = 0; graphics_priv->painter = NULL; - graphics_priv->widget->show(); graphics_priv->parent = NULL; graphics_priv->overlays=g_hash_table_new(NULL, NULL); - callbacks = cbl; - resize_callback(graphics_priv->widget->width(),graphics_priv->widget->height()); - return graphics_priv; + + graphics_priv->widget = new QNavitWidget(graphics_priv,NULL,Qt::Window); + if ((fullscreen=attr_search(attrs, NULL, attr_fullscreen)) && (fullscreen->u.num)) { + /* show this maximized */ + graphics_priv->widget->setWindowState(Qt::WindowFullScreen); + } + else + { + /* not maximized. Check what size to use then */ + struct attr * w = NULL; + struct attr * h = NULL; + /* default to desktop size if nothing else is given */ + QRect geomet = navit_app->desktop()->screenGeometry(graphics_priv->widget); + /* check for height */ + if ((h = attr_search(attrs, NULL, attr_h)) && (h->u.num > 100)) + geomet.setHeight(h->u.num); + /* check for width */ + if ((w = attr_search(attrs, NULL, attr_w)) && (w->u.num > 100)) + geomet.setWidth(w->u.num); + graphics_priv->widget->resize(geomet.width(), geomet.height()); + //graphics_priv->widget->setFixedSize(geomet.width(), geomet.height()); + } + /* generate initial pixmap same size as window */ + if(graphics_priv->pixmap == NULL) + graphics_priv->pixmap = new QPixmap(graphics_priv->widget->size()); + + /* tell Navit our geometry */ + resize_callback(graphics_priv->widget->width(),graphics_priv->widget->height()); + + /* Workaround: Qt doesnt seem to get geometry right if there is no resize event. + * queue one. */ + QSize newSize(graphics_priv->widget->width(),graphics_priv->widget->height()); + QResizeEvent *myResizeEvent = new QResizeEvent(newSize,newSize); + QCoreApplication::postEvent(graphics_priv->widget,myResizeEvent); + + /* show our window */ + graphics_priv->widget->show(); + return graphics_priv; } void -- cgit v1.2.1 From 96638a4254ff1b1d78a0c20058ada8e5e1fc4f70 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sat, 28 Jan 2017 16:49:38 +0100 Subject: Fix: Qt5: only update navit geometry if root window changed size. --- navit/graphics/qt5/QNavitWidget.cpp | 4 +++- navit/graphics/qt5/graphics_qt5.cpp | 12 ++++-------- navit/graphics/qt5/graphics_qt5.h | 1 + 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/navit/graphics/qt5/QNavitWidget.cpp b/navit/graphics/qt5/QNavitWidget.cpp index ea21de17f..fe3a618e2 100644 --- a/navit/graphics/qt5/QNavitWidget.cpp +++ b/navit/graphics/qt5/QNavitWidget.cpp @@ -87,7 +87,9 @@ void QNavitWidget::resizeEvent(QResizeEvent * event) delete painter; dbg(lvl_debug,"size %dx%d\n", width(), height()); dbg(lvl_debug,"pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height()); - resize_callback(width(),height()); + /* if the root window got resized, tell navit about it */ + if(graphics_priv->root) + resize_callback(width(),height()); } void QNavitWidget::mouseEvent(int pressed, QMouseEvent *event) diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp index db087af74..81fec32c2 100644 --- a/navit/graphics/qt5/graphics_qt5.cpp +++ b/navit/graphics/qt5/graphics_qt5.cpp @@ -91,7 +91,7 @@ graphics_destroy(struct graphics_priv *gr) /* destroy overlays hash */ g_hash_table_destroy(gr->overlays); /* destroy global application if destroying the last */ - if(gr->argc > 0) + if(gr->root) { if(navit_app != NULL) { @@ -719,7 +719,8 @@ overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct poin graphics_priv->use_count = 0; graphics_priv->parent = gr; graphics_priv->overlays=g_hash_table_new(NULL, NULL); - graphics_priv->argc=0; + graphics_priv->root = false; + graphics_priv->argc = 0; graphics_priv->argv[0] = NULL; /* register on parent */ g_hash_table_insert(gr->overlays, graphics_priv, graphics_priv); @@ -766,6 +767,7 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * /* create root graphics layer */ graphics_priv = g_new0(struct graphics_priv, 1); /* Prepare argc and argv to call Qt application*/ + graphics_priv->root = true; graphics_priv->argc = 0; graphics_priv->argv[graphics_priv->argc] = g_strdup("navit"); graphics_priv->argc ++; @@ -821,12 +823,6 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr * /* tell Navit our geometry */ resize_callback(graphics_priv->widget->width(),graphics_priv->widget->height()); - /* Workaround: Qt doesnt seem to get geometry right if there is no resize event. - * queue one. */ - QSize newSize(graphics_priv->widget->width(),graphics_priv->widget->height()); - QResizeEvent *myResizeEvent = new QResizeEvent(newSize,newSize); - QCoreApplication::postEvent(graphics_priv->widget,myResizeEvent); - /* show our window */ graphics_priv->widget->show(); return graphics_priv; diff --git a/navit/graphics/qt5/graphics_qt5.h b/navit/graphics/qt5/graphics_qt5.h index 1f27ddfa0..2f19390c4 100644 --- a/navit/graphics/qt5/graphics_qt5.h +++ b/navit/graphics/qt5/graphics_qt5.h @@ -40,6 +40,7 @@ struct graphics_priv { #endif GHashTable *overlays; struct graphics_priv * parent; + bool root; int argc; char * argv[4]; }; -- cgit v1.2.1 From 02b1cc8c3aa9284bdc8897c384db6f0a9a92ba20 Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Sun, 5 Feb 2017 17:08:44 +0100 Subject: Add libqt5svg5-dev to test environment --- ci/build_linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_linux.sh b/ci/build_linux.sh index 3716f47d9..7e26d0685 100644 --- a/ci/build_linux.sh +++ b/ci/build_linux.sh @@ -1,4 +1,4 @@ -sudo apt-get install cmake libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev g++ libgtk2.0-dev +sudo apt-get install cmake libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev g++ libgtk2.0-dev libqt5svg5-dev cmake_opts="-Dgraphics/qt_qpainter:BOOL=FALSE -Dgui/qml:BOOL=FALSE -DSVG2PNG:BOOL=FALSE -DSAMPLE_MAP=n -Dgraphics/gtk_drawing_area:BOOL=TRUE" -- cgit v1.2.1 From 15d6b69328e903503a00ec8e8ad5380447275a2f Mon Sep 17 00:00:00 2001 From: Wildemann Stefan Date: Tue, 21 Feb 2017 15:32:52 +0100 Subject: Temporary: Enable Qt5 graphics in navit_shipped.xml Enable Qt5 for in branch CircleCI. This should be reverted before or after merge to trunk as this breaks --- navit/navit_shipped.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navit/navit_shipped.xml b/navit/navit_shipped.xml index eb2191963..cd790f428 100644 --- a/navit/navit_shipped.xml +++ b/navit/navit_shipped.xml @@ -38,7 +38,7 @@ - + -- cgit v1.2.1 From 522102ad1b961c3e3a1818e2cc0873d28725ce92 Mon Sep 17 00:00:00 2001 From: Wildemann Stefan Date: Tue, 21 Feb 2017 16:24:13 +0100 Subject: Fix: remove autotools leftovers --- navit/graphics/qt5/Makefile.am | 9 --------- navit/vehicle/qt5/Makefile.am | 9 --------- 2 files changed, 18 deletions(-) delete mode 100644 navit/graphics/qt5/Makefile.am delete mode 100644 navit/vehicle/qt5/Makefile.am diff --git a/navit/graphics/qt5/Makefile.am b/navit/graphics/qt5/Makefile.am deleted file mode 100644 index a4631ff4a..000000000 --- a/navit/graphics/qt5/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=graphics_null -if PLUGINS -modulegraphics_LTLIBRARIES = libgraphics_null.la -else -noinst_LTLIBRARIES = libgraphics_null.la -endif -libgraphics_null_la_SOURCES = graphics_null.c -libgraphics_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ diff --git a/navit/vehicle/qt5/Makefile.am b/navit/vehicle/qt5/Makefile.am deleted file mode 100644 index b4c0ebb92..000000000 --- a/navit/vehicle/qt5/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -include $(top_srcdir)/Makefile.inc -AM_CPPFLAGS = @NAVIT_CFLAGS@ -I$(top_srcdir)/navit -DMODULE=vehicle_qt5 -if PLUGINS - modulevehicle_LTLIBRARIES = libvehicle_qt5.la -else - noinst_LTLIBRARIES = libvehicle_qt5.la -endif -libvehicle_null_la_SOURCES = vehicle_qt5.cpp -libvehicle_null_la_LDFLAGS = -module -avoid-version @NAVIT_MODULE_LDFLAGS@ -- cgit v1.2.1 From 294f7264be952cccbd91b294babc9225624a87f2 Mon Sep 17 00:00:00 2001 From: Wildemann Stefan Date: Tue, 21 Feb 2017 16:31:44 +0100 Subject: Revert "Temporary: Enable Qt5 graphics in navit_shipped.xml" This reverts commit d7da3842b3170c179049eb3348e152646788fb91. --- navit/navit_shipped.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navit/navit_shipped.xml b/navit/navit_shipped.xml index cd790f428..eb2191963 100644 --- a/navit/navit_shipped.xml +++ b/navit/navit_shipped.xml @@ -38,7 +38,7 @@ - + -- cgit v1.2.1 From 43988f1800012899c1444a70e5e16a4ad31e31c7 Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Thu, 23 Feb 2017 08:53:31 -0800 Subject: Add:CI:Expand UI tests with a clean exit --- ci/xdotools.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ci/xdotools.sh b/ci/xdotools.sh index 6c29c696d..36331fd9b 100644 --- a/ci/xdotools.sh +++ b/ci/xdotools.sh @@ -82,5 +82,13 @@ for i in `seq 99994 99999`; do sleep 1 done +# Quit +send_event key KP_Enter # Open main menu +send_event key Down # Select 'Actions' +send_event key Down # Select 'Route' +send_event key Right # Select 'About' +send_event key Right # Select 'Quit' +send_event key KP_Enter # Validate + # Assemble the gif convert -delay 100 -loop 0 $CIRCLE_ARTIFACTS/frames/*.png $CIRCLE_ARTIFACTS/town_search.gif -- cgit v1.2.1 From 518d1b9b6ea7898926d1a7bccfd27fd4eb35869a Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 23 Feb 2017 19:04:33 +0100 Subject: CI: Add linux tests for qt5 and gtk_drawing_area commit 6bff6c358cb3bb65c038cee725e14999ded0eb7b Author: Stefan Wildemann Date: Thu Feb 23 18:37:44 2017 +0100 Fix: give graphics name to script as planned commit 6d3750d80e2b540fecf2a3efaba80f8292ebc1b0 Author: Stefan Wildemann Date: Thu Feb 23 18:18:41 2017 +0100 Fix: correct typo commit bacca401ffaabd078d31000ff0ea201cd3a6a92b Author: Wildemann Stefan Date: Thu Feb 23 16:44:29 2017 +0100 Run linux tests for gtk_drawing_area and qt --- ci/run_linux_tests.sh | 57 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/ci/run_linux_tests.sh b/ci/run_linux_tests.sh index 3db760962..3f87161ed 100644 --- a/ci/run_linux_tests.sh +++ b/ci/run_linux_tests.sh @@ -1,29 +1,56 @@ #!/bin/bash +linux_test () { + # create logs dir + mkdir $CIRCLE_ARTIFACTS/logs_${1} + + #run instance of navit and remember pid + ./navit >$CIRCLE_ARTIFACTS/logs_${1}/stdout.txt 2>$CIRCLE_ARTIFACTS/logs_${1}/stderr.txt & + pid=$! + + # give navit time to come up + sleep 5 + + # screen shot root window + import -window root $CIRCLE_ARTIFACTS/default.png + + # run tests on X11 + bash ~/navit/ci/xdotools.sh + + # python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ + # dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit + + # kill navit instance + kill $pid +} + set -e pushd ~/linux-bin/navit/ -sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml -sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml -sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml -sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml +# prepare environment by getting a map of berkley cat > maps/berkeley.xml << EOF EOF wget http://sd-55475.dedibox.fr/berkeley.bin -O maps/berkeley.bin -mkdir $CIRCLE_ARTIFACTS/logs +# back up config +cp navit.xml navit.xml.bak -./navit >$CIRCLE_ARTIFACTS/logs/stdout.txt 2>$CIRCLE_ARTIFACTS/logs/stderr.txt & -pid=$! - -sleep 5 - -import -window root $CIRCLE_ARTIFACTS/default.png - -bash ~/navit/ci/xdotools.sh +# run gtk test +sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml +sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml +sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml +sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml +linux_test gtk_drawing_area -# python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/ +# restore config +cp navit.xml.bak navit.xml +# run qt5 test +sed -i -e 's@graphics type="gtk_drawing_area"@graphics type="qt5" v="792" h="547"@' navit.xml +sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml +sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml +sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml +sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml +linux_test qt5 -# dbus-send --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit -- cgit v1.2.1 From 1716efdda5fc7632645d4ccd2696721d0fa1213f Mon Sep 17 00:00:00 2001 From: Pierre Grandin Date: Thu, 23 Feb 2017 14:12:43 -0800 Subject: Publish arm packages only on Playstore --- ci/publish.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/publish.sh b/ci/publish.sh index 2f880f339..362411e6b 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -1,3 +1,5 @@ +ARCH="arm" + cd ~/ git clone git@github.com:navit-gps/infrastructure-blackbox.git cd infrastructure-blackbox/keyrings/ -- cgit v1.2.1 From b51e60001bc81e7bb2acf70f1025ed7633d089c3 Mon Sep 17 00:00:00 2001 From: jandegr Date: Fri, 24 Feb 2017 13:08:01 +0100 Subject: ask permissions on sdk >= 23 --- .../android/src/org/navitproject/navit/Navit.java | 45 +++++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java index 11a1919b7..5da40efa0 100644 --- a/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/android/src/org/navitproject/navit/Navit.java @@ -62,6 +62,8 @@ import android.os.Bundle; import android.os.Environment; import android.os.Message; import android.os.PowerManager; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.text.SpannableString; import android.text.method.LinkMovementMethod; import android.text.util.Linkify; @@ -115,6 +117,7 @@ public class Navit extends Activity static final String FIRST_STARTUP_FILE = NAVIT_DATA_SHARE_DIR + "/has_run_once.txt"; public static final String NAVIT_PREFS = "NavitPrefs"; Boolean isFullscreen = false; + private static final int MY_PERMISSIONS_REQUEST_ALL = 101; /** @@ -322,7 +325,12 @@ public class Navit extends Activity navigation_bar_width = (nwid > 0) ? resources.getDimensionPixelSize(nwid) : 0; Log.d(TAG, String.format("status_bar_height=%d, action_bar_default_height=%d, navigation_bar_height=%d, navigation_bar_height_landscape=%d, navigation_bar_width=%d", status_bar_height, action_bar_default_height, navigation_bar_height, navigation_bar_height_landscape, navigation_bar_width)); - + if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)|| + (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { + Log.d (TAG,"ask for permission(s)"); + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION},MY_PERMISSIONS_REQUEST_ALL); + } // get the local language ------------- Locale locale = java.util.Locale.getDefault(); String lang = locale.getLanguage(); @@ -481,7 +489,40 @@ public class Navit extends Activity show_soft_keyboard_now_showing = true; } } - + + @Override + public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + switch (requestCode) { + case MY_PERMISSIONS_REQUEST_ALL: { + if (grantResults.length > 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED + && grantResults[1] == PackageManager.PERMISSION_GRANTED) { + // ok, we got permissions + } else { + AlertDialog.Builder infobox = new AlertDialog.Builder(this); + infobox.setTitle(getString(R.string.permissions_info_box_title)); // TRANS + infobox.setCancelable(false); + final TextView message = new TextView(this); + message.setFadingEdgeLength(20); + message.setVerticalFadingEdgeEnabled(true); + RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); + message.setLayoutParams(rlp); + final SpannableString s = new SpannableString(getString(R.string.permissions_not_granted)); // TRANS + message.setText(s); + message.setMovementMethod(LinkMovementMethod.getInstance()); + infobox.setView(message); + // TRANS + infobox.setPositiveButton(getString(R.string.initial_info_box_OK), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface arg0, int arg1) { + exit(); + } + }); + infobox.show(); + } + return; + } + } + } + private void parseNavigationURI(String schemeSpecificPart) { String naviData[]= schemeSpecificPart.split("&"); Pattern p = Pattern.compile("(.*)=(.*)"); -- cgit v1.2.1 From 97ba134165affb038a18080af0f0b5344ef730e5 Mon Sep 17 00:00:00 2001 From: jandegr Date: Fri, 24 Feb 2017 13:09:57 +0100 Subject: add strings for permission dialog --- navit/android/res/values/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/navit/android/res/values/strings.xml b/navit/android/res/values/strings.xml index 0aadefa7e..3a730e807 100644 --- a/navit/android/res/values/strings.xml +++ b/navit/android/res/values/strings.xml @@ -76,5 +76,9 @@ System text to speech engine data is missing Navit can use any text to speech engine installed on your device. The currently selected engine reports it is unable to speak in your language. Should we ask the system to show voice download dialog? + + + Navit needs permission to access GPS and read the map.\nIf you change your mind please restart Navit and grant the permissions + One or more ungranted permissions -- cgit v1.2.1 From e1b8340c662516353028e05abe0570fc4ae7bb9a Mon Sep 17 00:00:00 2001 From: jandegr Date: Fri, 24 Feb 2017 13:20:39 +0100 Subject: import android.Manifest --- navit/android/src/org/navitproject/navit/Navit.java | 1 + 1 file changed, 1 insertion(+) diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java index 5da40efa0..1b5d8fb50 100644 --- a/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/android/src/org/navitproject/navit/Navit.java @@ -55,6 +55,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.Point; +import android.Manifest; import android.media.AudioManager; import android.net.Uri; import android.os.Build; -- cgit v1.2.1