Skip to content

Instantly share code, notes, and snippets.

@gordonmcshane
Created April 26, 2016 20:54
Show Gist options
  • Save gordonmcshane/2651e08f5bef15d70429f86bc51125a4 to your computer and use it in GitHub Desktop.
Save gordonmcshane/2651e08f5bef15d70429f86bc51125a4 to your computer and use it in GitHub Desktop.
quick script
#!/bin/bash
#fail fast
set -e
SRC=$1
OUTPUT=$2
if [[ ! $SRC = /* ]]; then
SRC="$PWD/${SRC#./}"
fi
if [[ ! $OUTPUT = /* ]]; then
OUTPUT="$PWD/${OUTPUT#./}"
fi
echo -- $OUTPUT
TOOLCHAIN_PATH=$OUTPUT/toolchain/
ARCH=arm
TOOLCHAIN=arm-linux-androideabi-clang
HOST_TRIPLET=arm-linux-androideabi
#ARCH=x86
#TOOLCHAIN=x86-clang
#HOST_TRIPLET=x86-linux-android
PLATFORM_VERSION=android-19
WARNING_SUPRESSIONS="-Wno-unused-const-variable \
-Wno-unused-local-typedef \
-Wno-unused-function"
export PATH=$TOOLCHAIN_PATH/bin:$PATH
export SYSROOT=$TOOLCHAIN_PATH/sysroot
export CC=$TOOLCHAIN_PATH/bin/clang
export CXX=$TOOLCHAIN_PATH/bin/clang++
case "$ARCH" in
arm)
CFLAGS="$CFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
CXXFLAGS="$CXXFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
export LDFLAGS="-march=armv7-a -Wl,--fix-cortex-a8"
;;
x86)
# x86 flags
;;
esac
export CFLAGS="$CFLAGS $(echo $WARNING_SUPRESSIONS | xargs)"
export CXXFLAGS="$CXXFLAGS $(echo $WARNING_SUPRESSIONS | xargs)"
echo "CFLAGS = $CFLAGS"
echo "CXXFLAGS = $CXXFLAGS"
echo "LDFLAGS = $LDFLAGS"
echo "Creating standalone android toolchain in $TOOLCHAIN_PATH"
TOOLCHAIN_BUILD=$NDK_ROOT/build/tools/make-standalone-toolchain.sh
$TOOLCHAIN_BUILD --toolchain=$TOOLCHAIN \
--arch=$ARCH \
--platform=$PLATFORM_VERSION \
--install-dir=$TOOLCHAIN_PATH
cmake \
-DCMAKE_TOOLCHAIN_FILE=$SRC/cmake/toolchains/android.toolchain.cmake \
-DANDROID_STANDALONE_TOOLCHAIN=$TOOLCHAIN_PATH \
-DANDROID_TOOLCHAIN_NAME=standalone-clang $SRC
cmake --build . --target install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment