build-android/build.sh
author Edouard Tisserant
Sat, 26 Sep 2015 20:18:22 +0200
changeset 353 f1ca187ee8cb
parent 337 ea7d347eaf6c
child 369 906f46ffd840
permissions -rwxr-xr-x
Android : build script now needs GPGME_INCLUDE_PATH env var to be set.
Edouard@333
     1
#!/bin/sh
Edouard@333
     2
Edouard@353
     3
set -e
Edouard@353
     4
Edouard@333
     5
build_version=1
Edouard@333
     6
ANDROID_PLATFORM=android-21
Edouard@333
     7
openssl_build_version=1
Edouard@333
     8
cyrus_sasl_build_version=1
Edouard@333
     9
libetpan_build_version=1
Edouard@333
    10
archs="armeabi armeabi-v7a x86 x86_64"
Edouard@333
    11
package_name=pEpEngine-android
Edouard@333
    12
Edouard@333
    13
current_dir="`pwd`"
Edouard@333
    14
libetpan_dir="$current_dir/../../libetpan/build-android"
Edouard@333
    15
Edouard@333
    16
if test "x$ANDROID_NDK" = x ; then
Edouard@333
    17
  echo should set ANDROID_NDK before running this script.
Edouard@333
    18
  exit 1
Edouard@333
    19
fi
Edouard@333
    20
Edouard@353
    21
if test "x$GPGME_INCLUDE_PATH" = x ; then
Edouard@353
    22
  echo should set GPGME_INCLUDE_PATH before running this script.
Edouard@353
    23
  exit 1
Edouard@353
    24
fi
Edouard@353
    25
Edouard@333
    26
function build {
Edouard@333
    27
  rm -rf "$current_dir/obj"
Edouard@333
    28
  
Edouard@333
    29
  cd "$current_dir/jni"
Edouard@333
    30
  $ANDROID_NDK/ndk-build V=1 TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
Edouard@333
    31
    OPENSSL_PATH="$current_dir/third-party/openssl-android-$openssl_build_version" \
Edouard@333
    32
    CYRUS_SASL_PATH="$current_dir/third-party/cyrus-sasl-android-$cyrus_sasl_build_version" \
Edouard@333
    33
    LIBETPAN_PATH="$current_dir/third-party/libetpan-android-$libetpan_build_version"
Edouard@333
    34
Edouard@333
    35
  mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
Edouard@333
    36
  cp "$current_dir/obj/local/$TARGET_ARCH_ABI/libpEpEngine.a" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
Edouard@333
    37
  rm -rf "$current_dir/obj"
Edouard@333
    38
}
Edouard@333
    39
Edouard@333
    40
mkdir -p "$current_dir/third-party"
Edouard@333
    41
cd "$current_dir/third-party"
Edouard@333
    42
unzip -qo "$libetpan_dir/dependencies/openssl/openssl-android-$openssl_build_version.zip"
Edouard@333
    43
unzip -qo "$libetpan_dir/dependencies/cyrus-sasl/cyrus-sasl-android-$cyrus_sasl_build_version.zip"
Edouard@333
    44
unzip -qo "$libetpan_dir/libetpan-android-$libetpan_build_version.zip"
Edouard@333
    45
Edouard@333
    46
# Copy public headers to include
Edouard@333
    47
mkdir -p "$current_dir/$package_name-$build_version/include/pEp"
Edouard@333
    48
cd "$current_dir/../src"
Edouard@333
    49
cp *.h "$current_dir/$package_name-$build_version/include/pEp"
Edouard@333
    50
Edouard@333
    51
# Start building.
Edouard@333
    52
for arch in $archs ; do
Edouard@333
    53
  TARGET_ARCH_ABI=$arch
Edouard@333
    54
  build
Edouard@333
    55
done
Edouard@333
    56
Edouard@333
    57
rm -rf "$current_dir/third-party"
Edouard@333
    58
cd "$current_dir"
Edouard@333
    59
zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
Edouard@333
    60
rm -rf "$package_name-$build_version"