Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 15 additions & 19 deletions ci-scripts/build_android.sh
Original file line number Diff line number Diff line change
@@ -1,44 +1,48 @@
#!/bin/sh
set -e

ANDROID_NDK_VERSION=android-ndk-r17b
ANDROID_NDK_VERSION=android-ndk-r21
# tools_r26.0.2
ANDROID_SDK_VERSION=3859397
ANDROID_SDK_VERSION=6200805

ANDROID_TARGET=android-21
ANDROID_ABI=armeabi-v7a
ANDROID_NDK=/opt/android/${ANDROID_NDK_VERSION}/
ANDROID_SDK=/opt/android/android-sdk-linux/

ROS2_CURDIR=${PWD}
ROS2_JAVA_DIR=${ROS2_JAVA_DIR:-${ROS2_CURDIR}}
ROS2_JAVA_DIR=${ROS2_CURDIR}
ROS2_OUTPUT_DIR=${ROS2_JAVA_DIR}/output
AMENT_WS=${ROS2_JAVA_DIR}/ament_ws
ROS2_ANDROID_WS=${ROS2_JAVA_DIR}/ros2_android_ws
AMENT_BUILD_DIR=${ROS2_OUTPUT_DIR}/build_isolated_ament
AMENT_INSTALL_DIR=${ROS2_OUTPUT_DIR}/install_isolated_ament
ROS2_ANDROID_BUILD_DIR=${ROS2_OUTPUT_DIR}/build_isolated_android
ROS2_ANDROID_INSTALL_DIR=${ROS2_OUTPUT_DIR}/install_isolated_android
#TOOLCHAIN_FILE=/opt/android/android-ndk-r13b/build/cmake/android.toolchain.cmake
ANDROID_NDK=/opt/android/${ANDROID_NDK_VERSION}
TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
ANDROID_STL=c++_shared
# ANDROID_STL=gnustl_shared
ANDROID_TARGET=android-21
ANDROID_ABI=armeabi-v7a
ROS2_JAVA_BRANCH=dashing

mkdir -p ${ROS2_JAVA_DIR}
mkdir -p ${AMENT_WS}/src
mkdir -p ${ROS2_ANDROID_WS}/src

if [ -n "${ROS2_JAVA_CI}" ]; then
if [ -d "${ANDROID_NDK}" ]; then
if [ -z `which java` ]; then
sudo apt install default-jdk
fi
wget -O /tmp/android-ndk.zip https://dl.google.com/android/repository/${ANDROID_NDK_VERSION}-linux-x86_64.zip && mkdir -p /opt/android/ && cd /opt/android/ && unzip -q /tmp/android-ndk.zip && rm /tmp/android-ndk.zip
wget -O /tmp/android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && mkdir -p /opt/android/android-sdk-linux && cd /opt/android/android-sdk-linux && unzip -q /tmp/android-sdk.zip && rm /tmp/android-sdk.zip
wget -O /tmp/android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && mkdir -p /opt/android/android-sdk-linux && cd /opt/android/android-sdk-linux && unzip -q /tmp/android-sdk.zip && rm /tmp/android-sdk.zip

ANDROID_HOME=/opt/android/android-sdk-linux
# Accept licenses
yes | ${ANDROID_SDK}/tools/bin/sdkmanager --licenses
yes | ${ANDROID_SDK}/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses

# Install platform tools
yes | ${ANDROID_SDK}/tools/bin/sdkmanager --verbose "platforms;${ANDROID_TARGET}"
${ANDROID_SDK}/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" "platforms;${ANDROID_TARGET}"

# Disable emulator for now
# yes | ${ANDROID_SDK}/tools/bin/sdkmanager --verbose "emulator"
Expand All @@ -52,20 +56,12 @@ if [ -z "$ROS2_JAVA_SKIP_FETCH" ]; then
echo "branch: $ROS2_JAVA_BRANCH"

cd $AMENT_WS
wget https://raw.githubusercontent.com/esteve/ament_java/$ROS2_JAVA_BRANCH/ament_java.repos || wget https://raw.githubusercontent.com/esteve/ament_java/master/ament_java.repos
wget https://raw.githubusercontent.com/ros2-java/ament_java/$ROS2_JAVA_BRANCH/ament_java.repos || wget https://raw.githubusercontent.com/ros2-java/ament_java/master/ament_java.repos
vcs import $AMENT_WS/src < ament_java.repos
cd src/ament_java
vcs custom --git --args checkout $ROS2_JAVA_BRANCH || true
cd $AMENT_WS
vcs export --exact

cd $ROS2_ANDROID_WS
wget https://raw.githubusercontent.com/esteve/ros2_java/$ROS2_JAVA_BRANCH/ros2_java_android.repos || wget https://raw.githubusercontent.com/esteve/ros2_java/master/ros2_java_android.repos
wget https://raw.githubusercontent.com/ros2-java/ros2_java/$ROS2_JAVA_BRANCH/ros2_java_android.repos || wget https://raw.githubusercontent.com/ros2-java/ros2_java/master/ros2_java_android.repos
vcs import $ROS2_ANDROID_WS/src < ros2_java_android.repos || true
cd src/ros2_java
vcs custom --git --args checkout $ROS2_JAVA_BRANCH || true
cd $ROS2_ANDROID_WS
vcs export --exact

cd $ROS2_ANDROID_WS/src/ros2/rosidl
test -e $ROS2_ANDROID_WS/src/ros2/rmw_fastrtps/rmw_fastrtps_c/package.xml && touch rosidl_generator_cpp/AMENT_IGNORE
Expand Down