Created
October 3, 2017 20:13
-
-
Save alepez/5732983d6e4948282d5ee89fee93b10f to your computer and use it in GitHub Desktop.
Build boost for android
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
version=1.65.1 | |
echo "Building boost $version..." | |
set -eu | |
toolchain=$PWD/toolchain | |
if [ ! -d "$toolchain" ]; then | |
echo "Building toolchain..." | |
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh \ | |
--arch=arm --platform=android-24 \ | |
--install-dir="$toolchain" \ | |
--toolchain=arm-linux-androideabi-clang \ | |
--use-llvm --stl=libc++ | |
else | |
echo "Toolchain already built" | |
fi | |
dir_name=boost_$(sed 's#\.#_#g' <<< $version) | |
archive=${dir_name}.tar.gz | |
if [ ! -f "$archive" ]; then | |
wget -O $archive "http://downloads.sourceforge.net/project/boost/boost/$version/$archive?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F$version%2F&ts=1463606893&use_mirror=jaist" | |
else | |
echo "Archive $archive already downloaded" | |
fi | |
echo "Extracting..." | |
if [ ! -d "$dir_name" ]; then | |
# rm -rf $dir_name | |
tar xf $archive | |
else | |
echo "Archive $archive already unpacked into $dir_name" | |
fi | |
cd $dir_name | |
echo "Generating config..." | |
user_config=tools/build/src/user-config.jam | |
rm -f $user_config | |
cat <<EOF > $user_config | |
import os ; | |
using clang : android | |
: | |
"$toolchain/bin/clang++" | |
: | |
<archiver>$toolchain/bin/arm-linux-androideabi-ar | |
<ranlib>$toolchain/bin/arm-linux-androideabi-ranlib | |
; | |
EOF | |
echo "Bootstrapping..." | |
./bootstrap.sh | |
# --with-coroutine \ | |
# --with-coroutine2 \ | |
echo "Building..." | |
./b2 -j$( nproc --all ) \ | |
--ignore-site-config \ | |
--with-atomic \ | |
--with-chrono \ | |
--with-container \ | |
--with-date_time \ | |
--with-exception \ | |
--with-fiber \ | |
--with-filesystem \ | |
--with-graph \ | |
--with-graph_parallel \ | |
--with-iostreams \ | |
--with-locale \ | |
--with-log \ | |
--with-math \ | |
--with-metaparse \ | |
--with-mpi \ | |
--with-program_options \ | |
--with-random \ | |
--with-regex \ | |
--with-serialization \ | |
--with-signals \ | |
--with-system \ | |
--with-test \ | |
--with-thread \ | |
--with-timer \ | |
--with-type_erasure \ | |
--with-wave \ | |
toolset=clang-android \ | |
architecture=arm \ | |
variant=release \ | |
--layout=versioned \ | |
target-os=android \ | |
threading=multi \ | |
threadapi=pthread \ | |
link=static \ | |
link=shared \ | |
runtime-link=shared | |
echo "Running ranlib on libraries..." | |
libs=$(find "bin.v2/libs/" -name '*.a') | |
for lib in $libs; do | |
"$toolchain/bin/arm-linux-androideabi-ranlib" "$lib" | |
done | |
echo "Done!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment