mirror of
https://github.com/eclipse/upm.git
synced 2025-03-14 20:47:30 +03:00
docs: improve android things docs
* Add documentation on how to build android packages * Check env vars before running build-android.sh * Add doc strings to build-android.sh Signed-off-by: Nicolas Oliver <dario.n.oliver@intel.com>
This commit is contained in:
parent
91876d48ed
commit
40084ea651
@ -132,6 +132,34 @@ autotools on linux.
|
||||
pkg-config --cflags --libs upm-i2clcd
|
||||
~~~~~~~~~~~
|
||||
|
||||
## Building for Android Things
|
||||
|
||||
Requirements:
|
||||
* [io.mraa.at](https://search.maven.org/#artifactdetails%7Cio.mraa.at%7Cmraa%7C1.8.0%7Caar)
|
||||
* [io.mraa.at.upm](https://search.maven.org/#artifactdetails%7Cio.mraa.at.upm%7Cupm_zfm20%7C1.3.0%7Caar)
|
||||
* [Android NDK](https://developer.android.com/ndk/downloads/index.html) >= 14b
|
||||
|
||||
### Android NDK r14b
|
||||
|
||||
~~~~~~~~~~~~~{.sh}
|
||||
NDK_HOME="/path/to/android-ndk-r14b"
|
||||
MRAA_INSTALL_DIR="/path/to/mraa/install"
|
||||
|
||||
cmake -DBUILDSWIG=ON \
|
||||
-DBUILDSWIGPYTHON=OFF \
|
||||
-DBUILDSWIGNODE=OFF \
|
||||
-DBUILDSWIGJAVA=ON \
|
||||
-DANDROID_COMPILER_FLAGS_CXX='-std=c++11' \
|
||||
-DANDROID_PIE=1 \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
-DANDROID_STL_FORCE_FEATURES=ON \
|
||||
-DANDROID_STL=c++_shared \
|
||||
-DANDROID_TOOLCHAIN_NAME=x86-i686 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$NDK_HOME/build/cmake/android.toolchain.cmake \
|
||||
-DCMAKE_FIND_ROOT_PATH=$MRAA_INSTALL_DIR \
|
||||
..
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
## Building with Docker
|
||||
|
||||
You can use `docker` and `docker-compose` to generate a complete build environment
|
||||
|
@ -1,8 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# The script is used to build .aar packages for Upm modules.
|
||||
#
|
||||
# Author: Nicolas Oliver <dario.n.oliver@intel.com>
|
||||
#
|
||||
# All environment variables used are passed from docker-compose.
|
||||
# Those environment variables can also be declared in the host,
|
||||
# and this script can be used to build .aar packages without using
|
||||
# docker-compose.
|
||||
#
|
||||
# Environment variables:
|
||||
# - NDK_HOME - Path to Android NDK install folder. i.e. /opt/android-ndk-r14b/
|
||||
# - MRAA_INSTALL_DIR - Path to Mraa library install folder. i.e /opt/mraa/install/
|
||||
# - JAVA_HOME - Path to Java install folder. i.e. /usr/lib/jvm/java-8-openjdk-amd64/
|
||||
#
|
||||
# IMPORTANT: MRAA_INSTALL_DIR must contain an mraa version built for Android Things.
|
||||
set -e
|
||||
|
||||
export PKG_CONFIG_LIBDIR="$NDK_HOME/platforms/android-24/arch-x86/usr/lib:$MRAA_INSTALL_DIR/lib/pkgconfig/"
|
||||
# Check required environment variables and exit if they are not set
|
||||
function check_environment {
|
||||
VAR_NAME=$1
|
||||
VAR_VALUE=$2
|
||||
# Check required parameters
|
||||
VAR_NAME=${VAR_NAME:?value not provided}
|
||||
# Chek if variable is set
|
||||
if [ -z "${VAR_VALUE}" ]; then
|
||||
echo "Required environment variable ${VAR_NAME} is not defined. Exiting..."
|
||||
exit 1;
|
||||
else
|
||||
echo "Required environment variable ${VAR_NAME} is set."
|
||||
fi
|
||||
}
|
||||
|
||||
# Check for required environment variables
|
||||
check_environment "NDK_HOME" ${NDK_HOME}
|
||||
check_environment "MRAA_INSTALL_DIR" ${MRAA_INSTALL_DIR}
|
||||
check_environment "JAVA_HOME" ${JAVA_HOME}
|
||||
|
||||
PKG_CONFIG_LIBDIR="$NDK_HOME/platforms/android-24/arch-x86/usr/lib"
|
||||
PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR":$MRAA_INSTALL_DIR/lib/pkgconfig/"
|
||||
export PKG_CONFIG_LIBDIR
|
||||
|
||||
cmake \
|
||||
-DANDROID_COMPILER_FLAGS_CXX='-std=c++11' \
|
||||
@ -30,8 +67,7 @@ make -j8 -Cbuild
|
||||
|
||||
# Anotate the .java src from doxygen
|
||||
find src/ -name "javaupm_*.i" > build/upm.i.list
|
||||
# TODO: install doxy port tool
|
||||
#doxyport build/upm.i.list \
|
||||
#../doxy/doxyport build/upm.i.list \
|
||||
# -s src/interfaces/,src/bacnetmstp,src/bmg160,src/bma250e,src/bmm150 \
|
||||
# -m doxy/samples.mapping.txt \
|
||||
# -d build/src/ \
|
||||
|
Loading…
x
Reference in New Issue
Block a user