summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvglasow <michael -at- vonglasow.com>2019-01-28 18:16:16 +0100
committermvglasow <michael -at- vonglasow.com>2019-01-28 18:16:16 +0100
commit7053e8d4a448851cb9916fae7cde23252d6cb4c1 (patch)
tree8f13c7b38d34e9372ead348fe931b4d86a86b54a
parentf6e3a1d277686a043df19c7a6d7c3d3d4356c9cc (diff)
parent962206c07db90761e34fcd72a48c525939b7e8d9 (diff)
downloadnavit-7053e8d4a448851cb9916fae7cde23252d6cb4c1.tar.gz
Merge branch 'master' into osd-layout
-rw-r--r--.circleci/config.yml8
-rwxr-xr-x[-rw-r--r--]scripts/build_android.sh81
-rwxr-xr-xscripts/build_android_arm.sh62
-rw-r--r--scripts/build_android_x86.sh41
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 .