diff options
-rw-r--r-- | .circleci/config.yml | 107 | ||||
-rwxr-xr-x | CMakeLists.txt | 6 | ||||
-rwxr-xr-x | Toolchain/arm-eabi.cmake | 6 | ||||
-rwxr-xr-x | Toolchain/i686-android.cmake | 6 | ||||
-rw-r--r-- | ci/build_android.sh | 22 | ||||
-rw-r--r-- | ci/build_android_x86.sh | 22 | ||||
-rw-r--r-- | ci/build_linux.sh | 12 | ||||
-rw-r--r-- | ci/build_tomtom_minimal.sh | 183 | ||||
-rw-r--r-- | ci/build_tomtom_plugin.sh | 461 | ||||
-rw-r--r-- | ci/build_win32.sh | 2 | ||||
-rw-r--r-- | ci/setup_android.sh | 34 | ||||
-rw-r--r-- | ci/setup_common_requirements.sh | 1 | ||||
-rw-r--r-- | ci/setup_tomtom_requirements.sh | 83 | ||||
-rw-r--r-- | circle.yml | 46 | ||||
-rw-r--r-- | contrib/tomtom/SDKRegistry/navit.cap | 7 | ||||
-rw-r--r-- | contrib/tomtom/SDKRegistry/ts.cap | 8 | ||||
-rwxr-xr-x | contrib/tomtom/navit-wrapper | 59 | ||||
-rw-r--r-- | contrib/tomtom/ts/ts-wrapper | 15 | ||||
-rw-r--r-- | navit/icons/tomtom_minus.svg | 6 | ||||
-rw-r--r-- | navit/icons/tomtom_plus.svg | 6 |
20 files changed, 376 insertions, 716 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..ca49945be --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,107 @@ +version: 2 +defaults: &defaults + docker: + - image: ubuntu:14.04 + +jobs: + build_linux: + <<: *defaults + steps: + - checkout + - run: + name: Build for Linux + command: | + bash ci/setup_common_requirements.sh + bash ci/build_linux.sh + build_android_arm: + <<: *defaults + steps: + - checkout + - run: + name: Setup common requirements + command: | + bash ci/setup_common_requirements.sh + - run: + name: Prepare the Android build environment + command: | + bash ci/setup_android.sh + - run: + name: Build for Android ARM + command: | + bash ci/build_android.sh + - store_artifacts: + path: android-arm/navit + build_android_x86: + <<: *defaults + steps: + - checkout + - run: + name: Setup common requirements + command: | + bash ci/setup_common_requirements.sh + - run: + name: Prepare the Android build environment + command: | + bash ci/setup_android.sh + - run: + name: Build for Android X86 + command: | + bash ci/build_android_x86.sh + - store_artifacts: + path: android-x86/navit + build_win32: + <<: *defaults + steps: + - checkout + - run: + name: Build for Windows + command: | + bash ci/setup_common_requirements.sh + bash ci/build_win32.sh + build_tomtom_minimal: + <<: *defaults + steps: + - checkout + - run: + name: Setup common requirements + command: | + bash ci/setup_common_requirements.sh + - run: + name: Build the Tomtom toolchain + command: | + bash ci/setup_tomtom_requirements.sh + - run: + name: Build for Tomtom (minimal) + command: | + bash ci/build_tomtom_minimal.sh + - store_artifacts: + path: /tmp/tomtom/sdcard + build_tomtom_plugin: + <<: *defaults + steps: + - checkout + - run: + name: Setup common requirements + command: | + bash ci/setup_common_requirements.sh + - run: + name: Build the Tomtom toolchain + command: | + bash ci/setup_tomtom_requirements.sh + - run: + name: Build for Tomtom (plugin) + command: | + bash ci/build_tomtom_plugin.sh + - store_artifacts: + path: /tmp/tomtom/sdcard + +workflows: + version: 2 + build_all: + jobs: + - build_linux + - build_android_arm + - build_android_x86 + - build_win32 + - build_tomtom_minimal + - build_tomtom_plugin diff --git a/CMakeLists.txt b/CMakeLists.txt index e7a6f6418..3d5924582 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -704,9 +704,9 @@ if(ANDROID) set(XSLTS "android;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process") list(APPEND NAVIT_LIBS log) set(HAVE_API_ANDROID 1) - set_with_reason(graphics/android "Android detected" TRUE) - set_with_reason(speech/android "Android detected" TRUE) - set_with_reason(vehicle/android "Android detected" TRUE) + set_with_reason(graphics/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE) + set_with_reason(speech/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE) + set_with_reason(vehicle/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE) set(SHARED_LIBNAVIT TRUE) add_feature(XPM2PNG "Android detected" TRUE) diff --git a/Toolchain/arm-eabi.cmake b/Toolchain/arm-eabi.cmake index 7c8190667..5aec27692 100755 --- a/Toolchain/arm-eabi.cmake +++ b/Toolchain/arm-eabi.cmake @@ -1,8 +1,8 @@ set(CMAKE_SYSTEM_NAME GNU) set(ANDROID TRUE) -set(ANDROID_API_VERSION 9 CACHE STRING "Andriod API Version") -set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version") +set(ANDROID_API_VERSION 9 CACHE STRING "Android API Version") +set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Android NDK API Version") set(ANDROID_ARCH "armeabi" CACHE STRING "Android architecture") find_program(CMAKE_C_COMPILER NAMES arm-eabi-gcc arm-eabi-gcc.exe arm-linux-androideabi-gcc arm-linux-androideabi-gcc.exe) @@ -11,7 +11,7 @@ set(PKG_CONFIG_EXECUTABLE "arm-eabi-pkg-config") get_filename_component(COMPILER_PATH ${CMAKE_C_COMPILER} PATH) -set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Andriod NDK") +set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Android NDK") set(NDK_ARCH_DIR "${ANDROID_NDK}/platforms/android-${ANDROID_NDK_API_VERSION}/arch-arm") set(CMAKE_FIND_ROOT_PATH ${NDK_ARCH_DIR}) diff --git a/Toolchain/i686-android.cmake b/Toolchain/i686-android.cmake index 2b6e8a177..4f5630644 100755 --- a/Toolchain/i686-android.cmake +++ b/Toolchain/i686-android.cmake @@ -1,8 +1,8 @@ set(CMAKE_SYSTEM_NAME GNU) set(ANDROID TRUE) -set(ANDROID_API_VERSION 9 CACHE STRING "Andriod API Version") -set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version") +set(ANDROID_API_VERSION 9 CACHE STRING "Android API Version") +set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Android NDK API Version") set(ANDROID_ARCH "x86" CACHE STRING "Android architecture") find_program(CMAKE_C_COMPILER NAMES i686-linux-android-gcc i686-linux-android-gcc.exe) @@ -11,7 +11,7 @@ set(PKG_CONFIG_EXECUTABLE "i686-android-pkg-config") get_filename_component(COMPILER_PATH ${CMAKE_C_COMPILER} PATH) -set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Andriod NDK") +set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Android NDK") set(NDK_ARCH_DIR "${ANDROID_NDK}/platforms/android-${ANDROID_NDK_API_VERSION}/arch-x86") set(CMAKE_FIND_ROOT_PATH ${NDK_ARCH_DIR}) diff --git a/ci/build_android.sh b/ci/build_android.sh index 97ac349a1..ad42c78c2 100644 --- a/ci/build_android.sh +++ b/ci/build_android.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +apt-get update && apt-get install -y wget + export ARCH="arm" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" @@ -10,28 +12,30 @@ export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebui 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 BUILD_PATH=android-${ARCH} + +export ANDROID_SDK_HOME=/opt/android-sdk-linux +export ANDROID_HOME=/opt/android-sdk-linux +export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools 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 +pushd $BUILD_PATH android list targets -cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 $SOURCE_PATH +cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain/arm-eabi.cmake -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 ../ + make -j $(nproc --all) if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make -j $(nproc --all) apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 + make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make -j $(nproc --all) apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 + make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ -cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ - echo echo "Build leftovers :" -ls $BUILD_PATH +find . diff --git a/ci/build_android_x86.sh b/ci/build_android_x86.sh index b9dff3a2c..6e84bc4e1 100644 --- a/ci/build_android_x86.sh +++ b/ci/build_android_x86.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +apt-get update && apt-get install -y wget + export ARCH="x86" export START_PATH=~/ export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/" @@ -10,28 +12,30 @@ 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-${ARCH}" +export BUILD_PATH=android-${ARCH} + +export ANDROID_SDK_HOME=/opt/android-sdk-linux +export ANDROID_HOME=/opt/android-sdk-linux +export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools + 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 +pushd $BUILD_PATH android list targets -cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH +cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain/i686-android.cmake -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 .. make -j $(nproc --all) if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make -j $(nproc --all) apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 + make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 else - make -j $(nproc --all) apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 + make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 fi -[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/ -cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/ - echo echo "Build leftovers :" -ls $BUILD_PATH +find . diff --git a/ci/build_linux.sh b/ci/build_linux.sh index ff5550e65..061ebd019 100644 --- a/ci/build_linux.sh +++ b/ci/build_linux.sh @@ -1,4 +1,6 @@ -sudo apt-get install cmake libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev g++ libgtk2.0-dev libqt5svg5-dev qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin qtmultimedia5-dev +set -e + +apt-get install -y libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev libgtk2.0-dev cmake_opts="-Dgraphics/qt_qpainter:BOOL=FALSE -Dgui/qml:BOOL=FALSE -DSVG2PNG:BOOL=FALSE -DSAMPLE_MAP=n -Dgraphics/gtk_drawing_area:BOOL=TRUE" @@ -26,15 +28,11 @@ 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 ~/linux-bin && cd ~/linux-bin - cmake ~/${CIRCLE_PROJECT_REPONAME}/ ${cmake_opts} || exit -1 + mkdir ${CIRCLE_WORKING_DIRECTORY}/linux-bin && cd ${CIRCLE_WORKING_DIRECTORY}/linux-bin + cmake ${CIRCLE_WORKING_DIRECTORY}/ ${cmake_opts} || exit -1 make -j $(nproc --all) || exit -1 fi if [[ "$CIRCLE_ARTIFACTS" != "" ]]; then cp -r navit/icons $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 845224e05..6af14fe5d 100644 --- a/ci/build_tomtom_minimal.sh +++ b/ci/build_tomtom_minimal.sh @@ -8,11 +8,8 @@ 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 +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" @@ -28,184 +25,44 @@ export STRIP=$ARCH-strip export OBJCOPY=$ARCH-objcopy export LN_S="ln -s" export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig -JOBS=$(nproc --all) - -echo "Jobs" -echo $JOBS - -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 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.29.tar.gz" -then - wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.tar.gz -P ~/tomtom_assets -fi - -# toolchain -cd /tmp -mkdir -p $TOMTOM_SDK_DIR -tar xzf ~/tomtom_assets/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.11.tar.gz -tar xzf zlib-1.2.11.tar.gz -cd zlib-1.2.11 -./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 ~/tomtom_assets/libpng-1.6.29.tar.gz -cd libpng-1.6.29/ -./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 - +JOBS=$(nproc --all) -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 - -# 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 - - -# 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 +pushd 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 \ +-DHAVE_API_TOMTOM=TRUE -DXSLTS=tomtom -DAVOID_FLOAT=TRUE -Dmap/mg=FALSE -DUSE_PLUGINS=0 -DCMAKE_TOOLCHAIN_FILE=../Toolchain/$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 -cd navit -mkdir -p bin share -cd share -mkdir -p fonts -cd .. - +[ -d $OUT_PATH ] && rm -rf $OUT_PATH +mkdir -p $OUT_PATH/navit/bin +mkdir -p $OUT_PATH/navit/share/fonts +mkdir -p $OUT_PATH/navit/share/icons +mkdir -p $OUT_PATH/navit/share/maps +mkdir -p $OUT_PATH/navit/share/locale # navit executable -cp $PREFIX/bin/navit bin/ - +cp navit/navit $OUT_PATH/navit/bin # fonts -cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts +cp -r ../navit/fonts/*.ttf $OUT_PATH/navit/share/fonts # images and xml -cd share -mkdir icons -cd icons -cp $PREFIX/share/navit/icons/*16.png ./ -cp $PREFIX/share/navit/icons/*32.png ./ -cp $PREFIX/share/navit/icons/*48.png ./ -cp $PREFIX/share/navit/icons/*64.png ./ -cp $PREFIX/share/navit/icons/nav*.* ./ -cp $PREFIX/share/navit/icons/country*.png ./ +cp $PREFIX/share/navit/icons/*16.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*32.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*48.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*64.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/nav*.* $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/country*.png $OUT_PATH/navit/share/icons cd .. cp $PREFIX/share/navit/navit.xml ./tomtom480.xml -mkdir -p maps - # locale -cp -r $PREFIX/share/locale ./ +cp -r $PREFIX/share/locale $OUT_PATH/navit/share/locale cd $OUT_PATH -zip -r $CIRCLE_ARTIFACTS/navitom_minimal.zip navit +zip -r navitom_minimal.zip navit diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh index 08966ddb7..98346e903 100644 --- a/ci/build_tomtom_plugin.sh +++ b/ci/build_tomtom_plugin.sh @@ -32,467 +32,108 @@ JOBS=$(nproc --all) echo "Jobs" echo $JOBS -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 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.29.tar.gz" -then - wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.tar.gz -P ~/tomtom_assets -fi - -# toolchain -cd /tmp -mkdir -p $TOMTOM_SDK_DIR -tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -C $TOMTOM_SDK_DIR - # espeak -cd /tmp +pushd /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 +pushd 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 -make install - -# http://forum.navit-project.org/viewtopic.php?f=17&t=568 -cd /tmp -cat > /tmp/espeakdsp.c << EOF -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/soundcard.h> -#include <sys/wait.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> - -#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<argc;co++) - { - if(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("/mnt/sdcard/navit/bin/espeak",newargv,envp); - perror("exec /mnt/sdcard/navit/bin/espeak"); - 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); - if(l<500) - { - printf("espeakdsp: avoid noise speaking a empty string\n"); - exit(EXIT_SUCCESS); - } - usleep (50000); - - 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;co<IBUFFERLEN;co++) - { - bufo[wp++]=bufi[co]; /* mono->stereo */ - 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); - } -} -EOF -arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakdsp - -# zlib -cd /tmp -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 - -# 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 ~/tomtom_assets/libpng-1.6.29.tar.gz -cd libpng-1.6.29/ -./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 +pushd src 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 - - -# in the end we only want Navit locale -rm -r $PREFIX/share/locale - -cat > ~/navit/navit/icons/tomtom_minus.svg << EOF -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1"> -<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/> -<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 60 0 L -60 0"/> -</svg> -EOF - -cat > ~/navit/navit/icons/tomtom_plus.svg << EOF -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1"> -<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/> -<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 0 60 L 0 -60 M 60 0 L -60 0"/> -</svg> -EOF +popd # src +popd # espeak-* +popd # /tmp # 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 +pushd 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 .. - - -cp $PREFIX/lib/libfreetype.so.6 lib -cp $PREFIX/lib/libSDL-1.2.so.0 lib -cp $PREFIX/lib/libSDL_image-1.2.so.0 lib -cp $PREFIX/lib/libfreetype.so.6 lib -cp $PREFIX/lib/libgio-2.0.so lib -cp $PREFIX/lib/libglib-2.0.so lib/libglib-2.0.so.0 -cp $PREFIX/lib/libgmodule-2.0.so lib/libgmodule-2.0.so.0 -cp $PREFIX/lib/libgobject-2.0.so lib/libgobject-2.0.so.0 -cp $PREFIX/lib/libgthread-2.0.so lib/libgthread-2.0.so.0 -cp $PREFIX/lib/libpng16.so.16 lib -cp $PREFIX/lib/libts-1.0.so.0 lib -cp $PREFIX/lib/libxml2.so.2 lib -cp $PREFIX/lib/libz.so.1 lib -cp $PREFIX/etc/ts.conf ts -cp $TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/lib/libstdc++.so.5 lib +[ -d $OUT_PATH ] && rm -rf $OUT_PATH +mkdir -p $OUT_PATH/navit/bin +mkdir -p $OUT_PATH/navit/lib +mkdir -p $OUT_PATH/navit/sdl +mkdir -p $OUT_PATH/navit/ts +mkdir -p $OUT_PATH/navit/share/fonts +mkdir -p $OUT_PATH/navit/share/icons +mkdir -p $OUT_PATH/navit/share/maps +mkdir -p $OUT_PATH/navit/share/locale + +cp $PREFIX/lib/libfreetype.so.6 $OUT_PATH/navit/lib +cp $PREFIX/lib/libSDL-1.2.so.0 $OUT_PATH/navit/lib +cp $PREFIX/lib/libSDL_image-1.2.so.0 $OUT_PATH/navit/lib +cp $PREFIX/lib/libfreetype.so.6 $OUT_PATH/navit/lib +cp $PREFIX/lib/libgio-2.0.so $OUT_PATH/navit/lib +cp $PREFIX/lib/libglib-2.0.so $OUT_PATH/navit/lib/libglib-2.0.so.0 +cp $PREFIX/lib/libgmodule-2.0.so $OUT_PATH/navit/lib/libgmodule-2.0.so.0 +cp $PREFIX/lib/libgobject-2.0.so $OUT_PATH/navit/lib/libgobject-2.0.so.0 +cp $PREFIX/lib/libgthread-2.0.so $OUT_PATH/navit/lib/libgthread-2.0.so.0 +cp $PREFIX/lib/libpng16.so.16 $OUT_PATH/navit/lib +cp $PREFIX/lib/libts-1.0.so.0 $OUT_PATH/navit/lib +cp $PREFIX/lib/libxml2.so.2 $OUT_PATH/navit/lib +cp $PREFIX/lib/libz.so.1 $OUT_PATH/navit/lib +cp $TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/lib/libstdc++.so.5 $OUT_PATH/navit/lib +cp $PREFIX/etc/ts.conf $OUT_PATH/navit/ts # flite # cp $PREFIX/bin/flite* bin/ +# http://forum.navit-project.org/viewtopic.php?f=17&t=568 +arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include ../contrib/tomtom/espeakdsp.c -o $OUT_PATH/navit/bin/espeakdsp + # SDL testvidinfo -cp $PREFIX/usr/bin/testvidinfo sdl/ +cp $PREFIX/usr/bin/testvidinfo $OUT_PATH/navit/sdl # navit executable and wrapper -cp $PREFIX/bin/navit bin/ -cat > bin/navit-wrapper << 'EOF' -#!/bin/sh - -cd /mnt/sdcard/navit/bin - -# Set some paths. -export PATH=$PATH:/mnt/sdcard/navit/bin -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib:/mnt/sdcard/LoquendoTTS/lib -export HOME=/mnt/sdcard/navit -export NAVIT_LIBDIR=/mnt/sdcard/navit/lib/navit -export NAVIT_SHAREDIR=/mnt/sdcard/navit/share -export NAVIT_LOCALEDIR=/mnt/sdcard/navit/share/locale - -# tslib requirements. -export TSLIB_CONSOLEDEVICE=none -export TSLIB_FBDEVICE=/dev/fb -export TSLIB_TSDEVICE=/dev/ts -export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal -export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf -export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts - -# SDL requirements. -export SDL_MOUSEDRV=TSLIB -export SDL_MOUSEDEV=$TSLIB_TSDEVICE -export SDL_NOMOUSE=1 -export SDL_FBDEV=/dev/fb -export SDL_VIDEODRIVER=fbcon -export SDL_AUDIODRIVER=dsp - -# Set time zone. -export TZ="CEDT-01:00:00CEST-02:00:00,M3.4.0,M10.4.0" - -# Set language. -export LANG=en_US - -export ESPEAK_DATA_PATH=/mnt/sdcard/navit/share - -# Run Navit. -if /mnt/sdcard/navit/sdl/testvidinfo | grep 480x272 -then - /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/tomtom480.xml 2>/mnt/sdcard/navit/navit.log& -# tomtom320xml is not provided yet -# elif /mnt/sdcard/navit/sdl/testvidinfo | grep 320x240 -# then -# /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/config/tomtom320.xml 2>/mnt/sdcard/navit/navit.log& -else - exit 1 -fi - -# Kill TTN while Navit is running. -killall ttn - -while [ $? -eq 0 ] -do -echo "\0" > /dev/watchdog -sleep 10 -ps | grep -v grep | grep -v wrapper | grep navit -done - -/sbin/reboot - -EOF -chmod a+rx bin/navit-wrapper +cp $PREFIX/bin/navit $OUT_PATH/navit/bin +cp ../contrib/tomtom/navit-wrapper $OUT_PATH/navit/bin/navit-wrapper # fonts -cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts +cp -r ../navit/fonts/*.ttf $OUT_PATH/navit/share/fonts # ts cp -r $PREFIX/lib/ts $OUT_PATH/navit/lib/ cp $PREFIX/bin/ts_* $OUT_PATH/navit/ts/ # images and xml -cd share -mkdir icons -cd icons -cp $PREFIX/share/navit/icons/*16.png ./ -cp $PREFIX/share/navit/icons/*32.png ./ -cp $PREFIX/share/navit/icons/*48.png ./ -cp $PREFIX/share/navit/icons/*64.png ./ -cp $PREFIX/share/navit/icons/nav*.* ./ -cp $PREFIX/share/navit/icons/country*.png ./ -cd .. +cp $PREFIX/share/navit/icons/*16.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*32.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*48.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/*64.png $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/nav*.* $OUT_PATH/navit/share/icons +cp $PREFIX/share/navit/icons/country*.png $OUT_PATH/navit/share/icons cp $PREFIX/share/navit/navit.xml ./tomtom480.xml -mkdir -p maps # locale -cp -r $PREFIX/share/locale ./ +cp -r $PREFIX/share/locale $OUT_PATH/navit/share/locale # espeak -cp -r ~/share/espeak-data ./ +cp -r ~/share/espeak-data $OUT_PATH/navit/share/ cp $PREFIX/bin/espeak $OUT_PATH/navit/bin/ cp $PREFIX/lib/libespeak.so.1 $OUT_PATH/navit/lib -mv /tmp/espeakdsp $OUT_PATH/navit/bin/ - # add a menu button -cat > $OUT_PATH/SDKRegistry/navit.cap << EOF -Version|100| -AppName|navit-wrapper| -AppPath|/mnt/sdcard/navit/bin/| -AppIconFile|navit.bmp| -AppMainTitle|Navit| -AppPort|2001| -COMMAND|CMD|hallo|navit.bmp|Navit| -EOF - +cp -r ../contrib/tomtom/SDKRegistry/ $OUT_PATH/ +cp -r ../contrib/tomtom/ts $OUT_PATH/ convert $PREFIX/share/icons/hicolor/128x128/apps/navit.png -type truecolor -crop 100x100+12+28 -resize 48x48 $OUT_PATH/SDKRegistry/navit.bmp -convert -background none ~/navit/navit/icons/tomtom_plus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_plus_80_80.png -convert -background none ~/navit/navit/icons/tomtom_minus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_minus_80_80.png - -cat > $OUT_PATH/SDKRegistry/ts.cap << EOF -Version|100| -AppName|ts-wrapper| -AppPath|/mnt/sdcard/navit/ts/| -AppIconFile|| -AppMainTitle|Touchscreen| -AppPort|| -COMMAND|CMD|hallo||Touchscreen| -EOF - - -cat > $OUT_PATH/navit/ts/ts-wrapper << EOF -#!/bin/sh - -cd /mnt/sdcard - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib - -export TSLIB_CONSOLEDEVICE=none -export TSLIB_FBDEVICE=/dev/fb -export TSLIB_TSDEVICE=/dev/ts -export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal -export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf -export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts +convert -background none ../navit/icons/tomtom_plus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_plus_80_80.png +convert -background none ../navit/icons/tomtom_minus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_minus_80_80.png -/mnt/sdcard/navit/ts/ts_calibrate -/mnt/sdcard/navit/ts/ts_test -EOF cd $OUT_PATH zip -r $CIRCLE_ARTIFACTS/navitom.zip navit SDKRegistry diff --git a/ci/build_win32.sh b/ci/build_win32.sh index a96653f33..47b05b9d2 100644 --- a/ci/build_win32.sh +++ b/ci/build_win32.sh @@ -1,4 +1,4 @@ -sudo apt-get install mingw32 mingw32-binutils mingw32-runtime default-jdk nsis +apt-get update && apt-get install -y mingw32 mingw32-binutils mingw32-runtime default-jdk nsis mkdir win32 pushd win32 diff --git a/ci/setup_android.sh b/ci/setup_android.sh new file mode 100644 index 000000000..64e250635 --- /dev/null +++ b/ci/setup_android.sh @@ -0,0 +1,34 @@ +apt-get update && apt-get install -y software-properties-common +add-apt-repository -y ppa:openjdk-r/ppa +apt-get update && apt-get install -y openjdk-8-jdk wget expect git curl libsaxonb-java ant +apt-get remove -y openjdk-7-jre-headless + +export ANDROID_SDK_HOME=/opt/android-sdk-linux +export ANDROID_HOME=/opt/android-sdk-linux + +cd /opt && wget -q https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -O android-sdk.tgz +cd /opt && tar -xvzf android-sdk.tgz +cd /opt && rm -f android-sdk.tgz + +export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools + +echo y | android update sdk --no-ui --all --filter platform-tools | grep 'package installed' +#RUN echo y | android update sdk --no-ui --all --filter extra-android-support | grep 'package installed' + +echo y | android update sdk --no-ui --all --filter android-25 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter android-24 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter android-23 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter android-18 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter android-16 | grep 'package installed' + +echo y | android update sdk --no-ui --all --filter build-tools-25.0.3 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-25.0.2 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-25.0.1 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-25.0.0 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-24.0.3 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-24.0.2 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-24.0.1 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-23.0.3 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-23.0.2 | grep 'package installed' +echo y | android update sdk --no-ui --all --filter build-tools-23.0.1 | grep 'package installed' + diff --git a/ci/setup_common_requirements.sh b/ci/setup_common_requirements.sh new file mode 100644 index 000000000..f5fa73cef --- /dev/null +++ b/ci/setup_common_requirements.sh @@ -0,0 +1 @@ +apt-get update && apt-get install -y wget unzip cmake build-essential gettext diff --git a/ci/setup_tomtom_requirements.sh b/ci/setup_tomtom_requirements.sh index 8ed1c158f..00bd33c44 100644 --- a/ci/setup_tomtom_requirements.sh +++ b/ci/setup_tomtom_requirements.sh @@ -1,12 +1,17 @@ #!/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 +# install additional packages to build TT evitonment and navit +apt-get install -y libglib2.0-dev git autogen autoconf libtool imagemagick zip +dpkg --add-architecture i386 +apt-get update +apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 + +#remove disturbing build artefact for second run +rm -f /opt/tomtom-sdk/gcc-3.3.4_glibc-2.3.2/arm-linux/sys-root/bin//glib-genmarshal + export ARCH=arm-linux cp Toolchain/$ARCH.cmake /tmp @@ -28,33 +33,34 @@ export STRIP=$ARCH-strip export OBJCOPY=$ARCH-objcopy export LN_S="ln -s" export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig -JOBS=`getconf _NPROCESSORS_ONLN` +JOBS=$(nproc --all) echo "Jobs" echo $JOBS -mkdir -p ~/assets/tomtom/ +mkdir -p ~/tomtom_assets -if ! [ -e "~/assets/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ] +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 ~/assets/tomtom + 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 "~/assets/tomtom/libpng-1.6.29.tar.gz" +if ! test -f "~/tomtom_assets/libpng-1.6.29.tar.gz" then - wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.29.tar.gz -P ~/assets/tomtom + wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.tar.gz -P ~/tomtom_assets 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 +tar xzf ~/tomtom_assets/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 +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 @@ -70,7 +76,7 @@ make install # libpng cd /tmp/ -tar xzf ~/assets/tomtom/libpng-1.6.29.tar.gz +tar xzf ~/tomtom_assets/libpng-1.6.29.tar.gz cd libpng-1.6.29/ ./configure --prefix=$PREFIX --host=$ARCH make -j$JOBS @@ -156,53 +162,6 @@ 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 deleted file mode 100644 index 0002cc7f5..000000000 --- a/circle.yml +++ /dev/null @@ -1,46 +0,0 @@ -machine: - environment: - CMAKE_FILE: ../Toolchain/arm-eabi.cmake -dependencies: - cache_directories: - - ~/.android - - ~/android - - "~/assets/" - pre: - - "[ -d ~/assets ] || mkdir ~/assets" - - "[ -d ~/android ] || mkdir ~/android" - - sudo apt-get update -# Android build - - sudo apt-get install gettext - - sudo apt-get install libsaxonb-java -# for aapt - - sudo apt-get install lib32stdc++6 - - sudo apt-get install lib32z1 -# For python testing with junit reporting - - sudo apt-get install python-gobject libdbus-glib-1-dev python-dev - - pip install junit-xml dbus-python - - ln -s /usr/lib/python2.7/dist-packages/gobject /opt/circleci/python/2.7.11/lib/python2.7/site-packages/ - - ln -s /usr/lib/python2.7/dist-packages/glib /opt/circleci/python/2.7.11/lib/python2.7/site-packages/ -test: - - override: - - bash ci/build.sh: - parallel: true - 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 - commands: - - git push origin $CIRCLE_SHA1:refs/heads/master - merge_translations: - branch: /i18n.*/ - owner: navit-gps - commands: - - bash ci/merge_i18n_update.sh diff --git a/contrib/tomtom/SDKRegistry/navit.cap b/contrib/tomtom/SDKRegistry/navit.cap new file mode 100644 index 000000000..d9bae49b7 --- /dev/null +++ b/contrib/tomtom/SDKRegistry/navit.cap @@ -0,0 +1,7 @@ +Version|100| +AppName|navit-wrapper| +AppPath|/mnt/sdcard/navit/bin/| +AppIconFile|navit.bmp| +AppMainTitle|Navit| +AppPort|2001| +COMMAND|CMD|hallo|navit.bmp|Navit| diff --git a/contrib/tomtom/SDKRegistry/ts.cap b/contrib/tomtom/SDKRegistry/ts.cap new file mode 100644 index 000000000..c10c831a4 --- /dev/null +++ b/contrib/tomtom/SDKRegistry/ts.cap @@ -0,0 +1,8 @@ +Version|100| +AppName|ts-wrapper| +AppPath|/mnt/sdcard/navit/ts/| +AppIconFile|| +AppMainTitle|Touchscreen| +AppPort|| +COMMAND|CMD|hallo||Touchscreen| + diff --git a/contrib/tomtom/navit-wrapper b/contrib/tomtom/navit-wrapper new file mode 100755 index 000000000..f4eadb9e0 --- /dev/null +++ b/contrib/tomtom/navit-wrapper @@ -0,0 +1,59 @@ +#!/bin/sh + +cd /mnt/sdcard/navit/bin + +# Set some paths. +export PATH=$PATH:/mnt/sdcard/navit/bin +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib:/mnt/sdcard/LoquendoTTS/lib +export HOME=/mnt/sdcard/navit +export NAVIT_LIBDIR=/mnt/sdcard/navit/lib/navit +export NAVIT_SHAREDIR=/mnt/sdcard/navit/share +export NAVIT_LOCALEDIR=/mnt/sdcard/navit/share/locale + +# tslib requirements. +export TSLIB_CONSOLEDEVICE=none +export TSLIB_FBDEVICE=/dev/fb +export TSLIB_TSDEVICE=/dev/ts +export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal +export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf +export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts + +# SDL requirements. +export SDL_MOUSEDRV=TSLIB +export SDL_MOUSEDEV=$TSLIB_TSDEVICE +export SDL_NOMOUSE=1 +export SDL_FBDEV=/dev/fb +export SDL_VIDEODRIVER=fbcon +export SDL_AUDIODRIVER=dsp + +# Set time zone. +export TZ="CEDT-01:00:00CEST-02:00:00,M3.4.0,M10.4.0" + +# Set language. +export LANG=en_US + +export ESPEAK_DATA_PATH=/mnt/sdcard/navit/share + +# Run Navit. +if /mnt/sdcard/navit/sdl/testvidinfo | grep 480x272 +then + /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/tomtom480.xml 2>/mnt/sdcard/navit/navit.log& +# tomtom320xml is not provided yet +# elif /mnt/sdcard/navit/sdl/testvidinfo | grep 320x240 +# then +# /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/config/tomtom320.xml 2>/mnt/sdcard/navit/navit.log& +else + exit 1 +fi + +# Kill TTN while Navit is running. +killall ttn + +while [ $? -eq 0 ] +do +echo "\0" > /dev/watchdog +sleep 10 +ps | grep -v grep | grep -v wrapper | grep navit +done + +/sbin/reboot diff --git a/contrib/tomtom/ts/ts-wrapper b/contrib/tomtom/ts/ts-wrapper new file mode 100644 index 000000000..6f8f8e2d5 --- /dev/null +++ b/contrib/tomtom/ts/ts-wrapper @@ -0,0 +1,15 @@ +#!/bin/sh + +cd /mnt/sdcard + +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib + +export TSLIB_CONSOLEDEVICE=none +export TSLIB_FBDEVICE=/dev/fb +export TSLIB_TSDEVICE=/dev/ts +export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal +export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf +export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts + +/mnt/sdcard/navit/ts/ts_calibrate +/mnt/sdcard/navit/ts/ts_test diff --git a/navit/icons/tomtom_minus.svg b/navit/icons/tomtom_minus.svg new file mode 100644 index 000000000..9453d687d --- /dev/null +++ b/navit/icons/tomtom_minus.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1"> +<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/> +<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 60 0 L -60 0"/> +</svg> diff --git a/navit/icons/tomtom_plus.svg b/navit/icons/tomtom_plus.svg new file mode 100644 index 000000000..bdf74c4f4 --- /dev/null +++ b/navit/icons/tomtom_plus.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1"> +<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/> +<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 0 60 L 0 -60 M 60 0 L -60 0"/> +</svg> |