diff options
author | mvglasow <michael -at- vonglasow.com> | 2019-01-28 18:16:16 +0100 |
---|---|---|
committer | mvglasow <michael -at- vonglasow.com> | 2019-01-28 18:16:16 +0100 |
commit | 7053e8d4a448851cb9916fae7cde23252d6cb4c1 (patch) | |
tree | 8f13c7b38d34e9372ead348fe931b4d86a86b54a | |
parent | f6e3a1d277686a043df19c7a6d7c3d3d4356c9cc (diff) | |
parent | 962206c07db90761e34fcd72a48c525939b7e8d9 (diff) | |
download | navit-7053e8d4a448851cb9916fae7cde23252d6cb4c1.tar.gz |
Merge branch 'master' into osd-layout
-rw-r--r-- | .circleci/config.yml | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | scripts/build_android.sh | 81 | ||||
-rwxr-xr-x | scripts/build_android_arm.sh | 62 | ||||
-rw-r--r-- | scripts/build_android_x86.sh | 41 |
4 files changed, 68 insertions, 124 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index c9b2bd214..f8172eebd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,7 +68,7 @@ jobs: build_android_arm: working_directory: ~/code docker: - - image: circleci/android:api-27-alpha + - image: circleci/android:api-28-ndk environment: JVM_OPTS: -Xmx3200m GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' @@ -84,10 +84,10 @@ jobs: sudo apt-get install -y cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler - run: name: Install Android SDK components - command: sdkmanager ndk-bundle "cmake;3.6.4111459" + command: sdkmanager "cmake;3.6.4111459" - run: - name: Build for Android (ARM) - command: bash scripts/build_android_arm.sh + name: Build for Android + command: bash scripts/build_android.sh - run: name: Run Lint Test command: | diff --git a/scripts/build_android.sh b/scripts/build_android.sh index 56b133bc5..8a4ea41a1 100644..100755 --- a/scripts/build_android.sh +++ b/scripts/build_android.sh @@ -1,34 +1,67 @@ #!/bin/bash -set -e +# Build Navit for Android. +# +# This script is to be run from the root of the Navit source tree. It is used by CircleCI as well as for local builds, +# in order to keep build environments as uniform as possible and CI test results meaningful. +# +# It will build Navit for all processor architectures specified in navit/android/build.gradle. +# +# When running this script locally, ensure all build dependencies are in place: +# - Packages required: cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler +# - Android SDK installed +# - Environment variable $ANDROID_HOME points to Android SDK install location +# - Android NDK and CMake components installed via +# sdkmanager ndk-bundle "cmake;3.6.4111459" +# (later CMake versions from the SDK repository may also work) +# +# If any of the build steps fails, this script aborts with an error immediately. -apt-get update && apt-get install -y wget +echo Set up environment +set - e +export PATH=$PATH:$ANDROID_HOME/tools +export JVM_OPTS="-Xmx3200m" +export GRADLE_OPTS='-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' -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-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=android-${ARCH} +echo Run CMake +cmake ./ -Dvehicle/gpsd_dbus:BOOL=FALSE -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 -DUSE_PLUGINS=n -DBUILD_MAPTOOL=n -DXSL_PROCESSING=y -DXSLTS=android -DANDROID=y -DSAMPLE_MAP=n || exit 1 -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 +echo Process icons +pushd navit/icons +make || exit 32 +mkdir ../android/res/drawable-nodpi +cp ./*.png ../android/res/drawable-nodpi +pushd ../android/res/drawable-nodpi +rename 'y/A-Z/a-z/' ./*.png +popd +popd -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 +echo Process translations +pushd po +make || exit 64 +mkdir ../navit/android/res/raw +cp ./*.mo ../navit/android/res/raw +pushd ../navit/android/res/raw +rename 'y/A-Z/a-z/' ./*.mo +popd +popd -[ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH -pushd $BUILD_PATH +echo Process xml config files +make navit_config_xml || exit 96 +pushd navit +mkdir -p ./android/assets +cp -R config ./android/assets/ +popd -android list targets +echo Chmod permissions +chmod a+x ./gradlew -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 ../ +echo Download dependencies +./gradlew -v -make -j $(nproc --all) +echo Build +./gradlew assembleDebug || exit 128 + +echo Build finished. +echo APK should be in "navit/android/build/outputs/apk" and can be installed with +echo ./gradlew installDebug -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 -make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 diff --git a/scripts/build_android_arm.sh b/scripts/build_android_arm.sh index 74cf8e28d..eaae87729 100755 --- a/scripts/build_android_arm.sh +++ b/scripts/build_android_arm.sh @@ -1,61 +1,13 @@ #!/bin/bash -# Build Navit for Android on ARM. +# Build Navit for Android. # -# This script is to be run from the root of the Navit source tree. It is used by CircleCI as well as for local builds, -# in order to keep build environments as uniform as possible and CI test results meaningful. +# This script is to be run from the root of the Navit source tree. # -# When running this script locally, ensure all build dependencies are in place: -# - Packages required: cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler -# - Android SDK installed -# - Environment variable $ANDROID_HOME points to Android SDK install location -# - Android NDK and CMake components installed via -# sdkmanager ndk-bundle "cmake;3.6.4111459" -# (later CMake versions from the SDK repository may also work) +# It is intended for compatibility and will simply run build_android.sh. # -# If any of the build steps fails, this script aborts with an error immediately. +# When writing or maintaining code, do not call this script but call build_android.sh directly, as this +# script will eventually be removed. -echo Set up environment -set - e -export PATH=$PATH:$ANDROID_HOME/tools -export JVM_OPTS="-Xmx3200m" -export GRADLE_OPTS='-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' - -echo Run CMake -cmake ./ -Dvehicle/gpsd_dbus:BOOL=FALSE -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 -DUSE_PLUGINS=n -DBUILD_MAPTOOL=n -DXSL_PROCESSING=y -DXSLTS=android -DANDROID=y -DSAMPLE_MAP=n || exit 1 - -echo Process icons -cd navit/icons -make || exit 32 -mkdir ../android/res/drawable-nodpi -rename 'y/A-Z/a-z/' ./*.png -cp ./*.png ../android/res/drawable-nodpi -cd ../../ - -echo Process translations -cd po -make || exit 64 -mkdir ../navit/android/res/raw -rename 'y/A-Z/a-z/' ./*.mo -cp ./*.mo ../navit/android/res/raw -cd ../ - -echo Process xml config files -make navit_config_xml || exit 96 -cd navit -mkdir -p ./android/assets -cp -R config ./android/assets/ -cd ../ - -echo Chmod permissions -chmod a+x ./gradlew - -echo Download dependencies -./gradlew -v - -echo Build -./gradlew assembleDebug || exit 128 - -echo Build finished. -echo APK should be in "navit/android/build/outputs/apk" and can be installed with -echo ./gradlew installDebug +echo WARNING: This script is deprecated, use build_android.sh instead! +./scripts/build_android.sh diff --git a/scripts/build_android_x86.sh b/scripts/build_android_x86.sh deleted file mode 100644 index 0ac19fd8a..000000000 --- a/scripts/build_android_x86.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/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}/" -export CMAKE_FILE=$SOURCE_PATH"/Toolchain/i686-android.cmake" -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=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 -pushd $BUILD_PATH - -android list targets - -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 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 navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 -fi - -echo -echo "Build leftovers :" -find . |