Last active
March 3, 2017 16:17
-
-
Save roscopecoltran/54cb059bd43a886641679e30400fcc79 to your computer and use it in GitHub Desktop.
Hunter + Polly quick cross-compilation - QT5 camera (iOS, MacOSX, Android, Linux)
This file contains 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 | |
# Author: Rosco Pecoltran | |
# Year: 2017 | |
# Android NDK | |
cp ~/.bash_profile ~/.bash_profile.save.before.hunter | |
# set active ndk (available options: r10e, r11c, r12b, r13b, r14...) | |
# ref. use ./install-android-ndk.sh for custom version (eg ./install-android-ndk.sh r14 | |
export ACTIVE_ANDROID_NDK=r10e | |
echo "export ACTIVE_ANDROID_NDK=r10e" >> ~/.bash_profile | |
# download android-ndk-r10e | |
mkdir -p ~/helpers/android/ndks | |
# extract tarball | |
wget -nc -q --no-check-certificate -P /Users/Luccio/helpers/android/ndks https://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip | |
# export env variables related to Android NDK | |
echo "export ANDROID_NDKS_PREFIX_PATH=~/helpers/android/ndks/" >> ~/.bash_profile | |
echo "export ANDROID_NDK_r10e=\"$ANDROID_NDKS_PREFIX_PATH/android-ndk-r10e\"" >> ~/.bash_profile | |
# | |
echo "export HUNTER_ROOT=~/helpers/hunter" >> ~/.bash_profile | |
echo "export POLLY_ROOT=~/helpers/polly" >> ~/.bash_profile | |
echo "export PATH=$PATH:$POLLY_ROOT/bin" >> ~/.bash_profile | |
source ~/.bash_profile | |
git clone --recursive --depth=1 https://github.com/ruslo/hunter $HUNTER_ROOT | |
git clone --recursive --depth=1 https://github.com/ruslo/polly $POLLY_ROOT | |
## Qt5 Camera | |
cd $HUNTER_ROOT/examples/qt-camera | |
### for iOS | |
build.py --toolchain=ios-10-2 --config Release \ | |
--jobs 4 \ | |
--clear \ | |
--reconfig \ | |
--ios-combined \ | |
--ios-multiarch \ | |
--fwd HUNTER_CONFIGURATION_TYPES=Release \ | |
BUILD_SHARED_LIBS=OFF | |
### for Android | |
build.py --toolchain=android-ndk-r10e-api-21-armeabi-v7a-neon \ | |
--config Release \ | |
--jobs 4 \ | |
--fwd HUNTER_CONFIGURATION_TYPES=Release \ | |
ANDROID=TRUE \ | |
BUILD_SHARED_LIBS=OFF | |
### for Linux | |
build.py --toolchain=gcc \ | |
--config Release \ | |
--jobs 4 \ | |
--fwd HUNTER_CONFIGURATION_TYPES=Release \ | |
BUILD_SHARED_LIBS=OFF | |
### for MacOSX | |
build.py --toolchain=osx-10-12 \ | |
--config Release \ | |
--jobs 4 \ | |
--fwd HUNTER_CONFIGURATION_TYPES=Release \ | |
BUILD_SHARED_LIBS=OFF | |
open $HUNTER_ROOT/examples/qt-camera | |
This file contains 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/sh | |
clear | |
echo | |
echo "[Sniper - Env] *** Load Android NDKs direct links" | |
## ndk_r14 (March 2017) | |
ANDROID_NDK_r14_WIN32="https://dl.google.com/android/repository/android-ndk-r14-windows-x86.zip" | |
ANDROID_NDK_r14_WIN32_SHA1="43d840b80f6bad630f766904172d305cdaf927c8" | |
ANDROID_NDK_r14_WIN64="https://dl.google.com/android/repository/android-ndk-r14-windows-x86_64.zip" | |
ANDROID_NDK_r14_WIN64_SHA1="ce688def0d64703e9fe4f2d93f879154c5070bf9" | |
ANDROID_NDK_r14_MACOSX="https://dl.google.com/android/repository/android-ndk-r14-darwin-x86_64.zip" | |
ANDROID_NDK_r14_MACOSX_SHA1="d121c9e4f359ff65fb4d003bdd7dbe5dd9cf7295" | |
ANDROID_NDK_r14_LINUX="https://dl.google.com/android/repository/android-ndk-r14-linux-x86_64.zip" | |
ANDROID_NDK_r14_LINUX_SHA1="eac8b293054671555cb636e350f1a9bc475c8f0c" | |
## ndk_r13b (Oct 2016) | |
ANDROID_NDK_r13b_WIN32="https://dl.google.com/android/repository/android-ndk-r13b-windows-x86.zip" | |
ANDROID_NDK_r13b_WIN64="https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip" | |
ANDROID_NDK_r13b_MACOSX="https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip" | |
ANDROID_NDK_r13b_LINUX="https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip" | |
## ndk_r13 (Sept 2016) | |
ANDROID_NDK_r13_WIN32="https://dl.google.com/android/repository/android-ndk-r13-windows-x86.zip" | |
ANDROID_NDK_r13_WIN64="https://dl.google.com/android/repository/android-ndk-r13-windows-x86_64.zip" | |
ANDROID_NDK_r13_MACOSX="https://dl.google.com/android/repository/android-ndk-r13-darwin-x86_64.zip" | |
ANDROID_NDK_r13_LINUX="https://dl.google.com/android/repository/android-ndk-r13-linux-x86_64.zip" | |
## ndk_r12 (June 2016) | |
ANDROID_NDK_r12_WIN32="http://dl.google.com/android/repository/android-ndk-r12b-windows-x86.zip" | |
ANDROID_NDK_r12_WIN64="http://dl.google.com/android/repository/android-ndk-r12b-windows-x86_64.zip" | |
ANDROID_NDK_r12_MACOSX64="http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip" | |
ANDROID_NDK_r12_LINUX64="http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip" | |
## ndk_r11c (March 2016) | |
ANDROID_NDK_r11c_WIN32="http://dl.google.com/android/repository/android-ndk-r11c-windows-x86.zip" | |
ANDROID_NDK_r11c_WIN64="http://dl.google.com/android/repository/android-ndk-r11c-windows-x86_64.zip" | |
ANDROID_NDK_r11c_MACOSX64="http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip" | |
ANDROID_NDK_r11c_LINUX64="http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip" | |
## ndk_r11b (March 2016) | |
ANDROID_NDK_r11b_WIN32="http://dl.google.com/android/repository/android-ndk-r11b-windows-x86.zip" | |
ANDROID_NDK_r11b_WIN64="http://dl.google.com/android/repository/android-ndk-r11b-windows-x86_64.zip" | |
ANDROID_NDK_r11b_MACOSX64="http://dl.google.com/android/repository/android-ndk-r11b-darwin-x86_64.zip" | |
ANDROID_NDK_r11b_LINUX64="http://dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zip" | |
## ndk_r11 (March 2016) | |
ANDROID_NDK_r11_WIN32="http://dl.google.com/android/repository/android-ndk-r11-windows-x86.zip" | |
ANDROID_NDK_r11_WIN64="http://dl.google.com/android/repository/android-ndk-r11-windows-x86_64.zip" | |
ANDROID_NDK_r11_MACOSX64="http://dl.google.com/android/repository/android-ndk-r11-darwin-x86_64.zip" | |
ANDROID_NDK_r11_LINUX64="http://dl.google.com/android/repository/android-ndk-r11-linux-x86_64.zip" | |
## ndk_r10e (Jan 2015) | |
ANDROID_NDK_r10e_WIN32="http://dl.google.com/android/ndk/android-ndk-r10e-windows-x86.exe" | |
ANDROID_NDK_r10e_WIN64="http://dl.google.com/android/ndk/android-ndk-r10e-windows-x86_64.exe" | |
ANDROID_NDK_r10e_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin" | |
ANDROID_NDK_r10e_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86.bin" | |
ANDROID_NDK_r10e_LINUX32="http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86.bin" | |
ANDROID_NDK_r10e_LINUX64="http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin" | |
## ndk_r10d (December 2014) | |
ANDROID_NDK_r10d_WIN32="http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86.exe" | |
ANDROID_NDK_r10d_WIN64="http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86_64.exe" | |
ANDROID_NDK_r10d_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86_64.bin" | |
ANDROID_NDK_r10d_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86.bin" | |
ANDROID_NDK_r10d_LINUX32="http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86.bin" | |
ANDROID_NDK_r10d_LINUX64="http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin" | |
## ndk_r10c (October 2014) | |
ANDROID_NDK_r10c_WIN32="http://dl.google.com/android/ndk/android-ndk-r10c-windows-x86.exe" | |
ANDROID_NDK_r10c_WIN64="http://dl.google.com/android/ndk/android-ndk-r10c-windows-x86_64.exe" | |
ANDROID_NDK_r10c_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r10c-darwin-x86.bin" | |
ANDROID_NDK_r10c_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r10c-darwin-x86_64.bin" | |
ANDROID_NDK_r10c_LINUX32="http://dl.google.com/android/ndk/android-ndk-r10c-linux-x86.bin" | |
ANDROID_NDK_r10c_LINUX64="http://dl.google.com/android/ndk/android-ndk-r10c-linux-x86_64.bin" | |
## ndk_r10b (September 2014) | |
ANDROID_NDK_r10b_WIN32="http://dl.google.com/android/ndk/android-ndk32-r10b-windows-x86.zip" | |
ANDROID_NDK_r10b_WIN64="http://dl.google.com/android/ndk/android-ndk32-r10b-windows-x86_64.zip" | |
ANDROID_NDK_r10b_MACOSX32="http://dl.google.com/android/ndk/android-ndk32-r10b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r10b_MACOSX64="http://dl.google.com/android/ndk/android-ndk32-r10b-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r10b_LINUX32="http://dl.google.com/android/ndk/android-ndk32-r10b-linux-x86.tar.bz2" | |
ANDROID_NDK_r10b_LINUX64="http://dl.google.com/android/ndk/android-ndk32-r10b-linux-x86_64.tar.bz2" | |
## ndk_r10 (July 2014) | |
ANDROID_NDK_r10_WIN32="http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip" | |
ANDROID_NDK_r10_WIN64="http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86_64.zip" | |
ANDROID_NDK_r10_MACOSX32="http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86.tar.bz2" | |
ANDROID_NDK_r10_MACOSX64="http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r10_LINUX32="http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86.tar.bz2" | |
ANDROID_NDK_r10_LINUX64="http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86_64.tar.bz2" | |
## ndk_r9d (March 2014) | |
ANDROID_NDK_r9d_WIN32="http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip" | |
ANDROID_NDK_r9d_WIN64="http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip" | |
ANDROID_NDK_r9d_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86.tar.bz2" | |
ANDROID_NDK_r9d_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r9d_LINUX32="http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86.tar.bz2" | |
ANDROID_NDK_r9d_LINUX64="http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2" | |
## ndk_r9c(December 2013) | |
ANDROID_NDK__WIN32="http://dl.google.com/android/ndk/android-ndk-r9c-windows-x86.zip" | |
ANDROID_NDK__WIN64="http://dl.google.com/android/ndk/android-ndk-r9c-windows-x86_64.zip" | |
ANDROID_NDK__MACOSX32="http://dl.google.com/android/ndk/android-ndk-r9c-darwin-x86.tar.bz2" | |
ANDROID_NDK__MACOSX64="http://dl.google.com/android/ndk/android-ndk-r9c-darwin-x86_64.tar.bz2" | |
ANDROID_NDK__LINUX32="http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86.tar.bz2" | |
ANDROID_NDK__LINUX64="http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86_64.tar.bz2" | |
## ndk_r9b (October 2013) | |
ANDROID_NDK_r9b_WIN32="http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86.zip" | |
ANDROID_NDK_r9b_WIN64="http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64.zip" | |
ANDROID_NDK_r9b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r9b_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r9b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r9b-linux-x86.tar.bz2" | |
ANDROID_NDK_r9b_LINUX64="http://dl.google.com/android/ndk/android-ndk-r9b-linux-x86_64.tar.bz2" | |
## ndk_r9 (July 2013) | |
ANDROID_NDK_r9_WIN32="http://dl.google.com/android/ndk/android-ndk-r9-windows-x86.zip" | |
ANDROID_NDK_r9_WIN64="http://dl.google.com/android/ndk/android-ndk-r9-windows-x86_64.zip" | |
ANDROID_NDK_r9_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r9-darwin-x86.tar.bz2" | |
ANDROID_NDK_r9_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r9-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r9_LINUX32="http://dl.google.com/android/ndk/android-ndk-r9-linux-x86.tar.bz2" | |
ANDROID_NDK_r9_LINUX64="http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2" | |
## ndk_r8e (March 2013) | |
ANDROID_NDK_r8e_WIN32="http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86.zip" | |
ANDROID_NDK_r8e_WIN64="http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86_64.zip" | |
ANDROID_NDK_r8e_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r8e-darwin-x86.tar.bz2" | |
ANDROID_NDK_r8e_MACOSX64="http://dl.google.com/android/ndk/android-ndk-r8e-darwin-x86_64.tar.bz2" | |
ANDROID_NDK_r8e_LINUX32="http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2" | |
ANDROID_NDK_r8e_LINUX64="http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86_64.tar.bz2" | |
## Note: NDK r8e is the first NDK with 32bit and 64bit releases. The prior ones were all 32bit and didn't have any suffix, so r8b would be: | |
## ndk_r8d (December 2012) | |
ANDROID_NDK_r8d_WIN32="https://dl.google.com/android/ndk/android-ndk-r8d-windows.zip" | |
ANDROID_NDK_r8d_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r8d-darwin-x86.tar.bz2" | |
ANDROID_NDK_r8d_LINUX32="http://dl.google.com/android/ndk/android-ndk-r8d-linux-x86.tar.bz2" | |
## ndk_r8C (November 2012) | |
ANDROID_NDK_r8C_WIN32="https://dl.google.com/android/ndk/android-ndk-r8C-windows.zip" | |
ANDROID_NDK_r8C_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r8C-darwin-x86.tar.bz2" | |
ANDROID_NDK_r8C_LINUX32="http://dl.google.com/android/ndk/android-ndk-r8C-linux-x86.tar.bz2" | |
## ndk_r8b (July 2012) | |
ANDROID_NDK_r8b_WIN32="https://dl.google.com/android/ndk/android-ndk-r8b-windows.zip" | |
ANDROID_NDK_r8b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r8b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r8b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r8b-linux-x86.tar.bz2" | |
## ndk_r8 (May 2012) | |
ANDROID_NDK_r8_WIN32="https://dl.google.com/android/ndk/android-ndk-r8-windows.zip" | |
ANDROID_NDK_r8_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r8-darwin-x86.tar.bz2" | |
ANDROID_NDK_r8_LINUX32="http://dl.google.com/android/ndk/android-ndk-r8-linux-x86.tar.bz2" | |
## ndk_r7c (April 2012) | |
ANDROID_NDK_r7c_WIN32="https://dl.google.com/android/ndk/android-ndk-r7c-windows.zip" | |
ANDROID_NDK_r7c_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r7c-darwin-x86.tar.bz2" | |
ANDROID_NDK_r7c_LINUX32="http://dl.google.com/android/ndk/android-ndk-r7c-linux-x86.tar.bz2" | |
## ndk_r7b (February 2012) | |
ANDROID_NDK_r7b_WIN32="https://dl.google.com/android/ndk/android-ndk-r7b-windows.zip" | |
ANDROID_NDK_r7b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r7b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r7b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r7b-linux-x86.tar.bz2" | |
## ndk_r7 (November 2011) | |
ANDROID_NDK_r7_WIN32="https://dl.google.com/android/ndk/android-ndk-r7-windows.zip" | |
ANDROID_NDK_r7_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r7-darwin-x86.tar.bz2" | |
ANDROID_NDK_r7_LINUX32="http://dl.google.com/android/ndk/android-ndk-r7-linux-x86.tar.bz2" | |
## ndk_r6b (August 2011) | |
ANDROID_NDK_r6b_WIN32="https://dl.google.com/android/ndk/android-ndk-r6b-windows.zip" | |
ANDROID_NDK_r6b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r6b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r6b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r6b-linux-x86.tar.bz2" | |
## ndk_r6 (July 2011) | |
ANDROID_NDK_r6_WIN32="https://dl.google.com/android/ndk/android-ndk-r6-windows.zip" | |
ANDROID_NDK_r6_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r6-darwin-x86.tar.bz2" | |
ANDROID_NDK_r6_LINUX32="http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2" | |
## ndk_r5c (June 2011) | |
ANDROID_NDK_r5c_WIN32="https://dl.google.com/android/ndk/android-ndk-r5c-windows.zip" | |
ANDROID_NDK_r5c_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r5c-darwin-x86.tar.bz2" | |
ANDROID_NDK_r5c_LINUX32="http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2" | |
## ndk_r5b (January 2011) | |
ANDROID_NDK_r5b_WIN32="https://dl.google.com/android/ndk/android-ndk-r5b-windows.zip" | |
ANDROID_NDK_r5b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r5b-darwin-x86.tar.bz2" | |
ANDROID_NDK_r5b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2" | |
## ndk_r5 (December 2010) | |
ANDROID_NDK_r5_WIN32="https://dl.google.com/android/ndk/android-ndk-r5-windows.zip" | |
ANDROID_NDK_r5_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r5-darwin-x86.tar.bz2" | |
ANDROID_NDK_r5_LINUX32="http://dl.google.com/android/ndk/android-ndk-r5-linux-x86.tar.bz2" | |
## ndk_r4b (June 2010) | |
ANDROID_NDK_r4b_WIN32="https://dl.google.com/android/ndk/android-ndk-r4b-windows.zip" | |
ANDROID_NDK_r4b_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r4b-darwin-x86.zip" | |
ANDROID_NDK_r4b_LINUX32="http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip" | |
## ndk_r4 (may 2010) | |
ANDROID_NDK_r4_WIN32="https://dl.google.com/android/ndk/android-ndk-r4-windows.zip" | |
ANDROID_NDK_r4_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r4-darwin-x86.zip" | |
ANDROID_NDK_r4_LINUX32="http://dl.google.com/android/ndk/android-ndk-r4-linux-x86.zip" | |
## ndk_r3 (March 2010) | |
ANDROID_NDK_r3_WIN32="https://dl.google.com/android/ndk/android-ndk-r3-windows.zip" | |
ANDROID_NDK_r3_MACOSX32="http://dl.google.com/android/ndk/android-ndk-r3-darwin-x86.zip" | |
ANDROID_NDK_r3_LINUX32="http://dl.google.com/android/ndk/android-ndk-r3-linux-x86.zip" | |
## nds_r2 (September 2009) | |
# No Ndk Download link found . If you have link please share with other developers | |
## nds_r1 (June 2009) | |
# No Ndk Download link found. If you have link please share with other developers. | |
function list_available_android_ndks | |
{ | |
echo | |
echo "[Sniper - List] *** under developement ***" | |
echo | |
} | |
function refresh_active_list_android_ndks | |
{ | |
echo | |
echo "[Sniper - Update] *** under developement ***" | |
echo | |
} | |
This file contains 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 | |
# default version to install | |
ANDROID_NDK_VERSION=${1:-r13b} | |
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | |
clear | |
echo | |
echo "[Sniper] *** Download and install *** Android NDK on your workspace" | |
# determine platform | |
CURRENT_PLATFORM_UNAME_INFO=$(uname -a) | |
CURRENT_PLATFORM_UNAME_ARCH=$(uname -m) | |
CMD_UTILITY_WGET=$(which wget) | |
CMD_UTILITY_CURL=$(which curl) | |
CMD_UTILITY_MD5=$(which md5) | |
CMD_UTILITY_OPENSSL=$(which openssl) | |
CMD_UTILITY_SHA1="openssl sha1" | |
CMD_UTILITY_ZIP=$(which zip) | |
CMD_UTILITY_UNZIP=$(which unzip) | |
CMD_UTILITY_TAR=$(which tar) | |
# (values: MACOSX, MACOSX32, MACOSX64, LINUX, LINUX32, LINUX64, WIN32, WIN64) | |
if [[ $CURRENT_PLATFORM_UNAME_INFO == *"Darwin"* ]]; then | |
CURRENT_PLATFORM_HOME_PREFIX_PATH=$(echo ~) | |
CURRENT_PLATFORM_ALIAS="MACOSX" | |
CURRENT_PLATFORM_NAME=$(uname) | |
ANDROID_NDKS_PREFIX_PATH="${CURRENT_PLATFORM_HOME_PREFIX_PATH}/helpers/android/ndks" | |
mkdir -p ${ANDROID_NDKS_PREFIX_PATH} | |
elif [[ $CURRENT_PLATFORM_UNAME_INFO == *"Darwin"* ]]; then | |
CURRENT_PLATFORM_ALIAS="LINUX" | |
CURRENT_PLATFORM_HOME_PREFIX_PATH=$(echo ~) # not sure for this one too | |
CURRENT_PLATFORM_NAME=$(uname) # not sure for linux, need to check in a docker container | |
ANDROID_NDKS_PREFIX_PATH="${CURRENT_PLATFORM_HOME_PREFIX_PATH}/dev/android/ndks" | |
mkdir -p ${ANDROID_NDKS_PREFIX_PATH} | |
else | |
echo | |
echo "[Sniper - Fatal] Need to auto-setup for other platform than Darwin or Linux platform for the moment." | |
echo | |
exit 1 | |
fi | |
# default install behaviour | |
ANDROID_NDKS_DL_VERBOSE=TRUE | |
ANDROID_NDKS_DL_DRY_TEST=TRUE | |
ANDROID_NDKS_DL_ENV_LINKS="env-android-ndks-direct-links.sh" | |
# load available android ndks direct links | |
# note: separate script as loads of exceptions and evolutions have impacted android ndks since 2012, and changing download link schemes | |
. ${CURRENT_DIR}/${ANDROID_NDKS_DL_ENV_LINKS} | |
# android ndk (revision version, workstation arch, install prefix path) | |
ANDROID_NDK_PLATFORM=${CURRENT_PLATFORM_NAME} | |
ANDROID_NDK_PLATFORM_ARCH=${CURRENT_PLATFORM_UNAME_ARCH} | |
ANDROID_NDK_DESTINATION_FOLDER="android-ndk-${ANDROID_NDK_VERSION}" | |
ANDROID_NDK_TARBALL_PREFIX_VAR="ANDROID_NDK_${ANDROID_NDK_VERSION}_${CURRENT_PLATFORM_ALIAS}" | |
ANDROID_NDK_TARBALL_SHA1="ANDROID_NDK_${ANDROID_NDK_VERSION}_${CURRENT_PLATFORM_ALIAS}_SHA1" | |
ANDROID_NDK_TARBALL_BASENAME=$(basename ${!ANDROID_NDK_TARBALL_PREFIX_VAR}) | |
echo | |
echo "[Sniper - Env]" | |
echo "[Sniper - Env] *** Workdir (current): ${CURRENT_DIR}" | |
echo "[Sniper - Env] *** Platform (current): ${CURRENT_PLATFORM_NAME}" | |
echo "[Sniper - Env] *** Platform alias: ${CURRENT_PLATFORM_ALIAS}" | |
echo "[Sniper - Env] *** Android NDK(s) prefix path: ${ANDROID_NDKS_PREFIX_PATH}" | |
echo "[Sniper - Env]" | |
echo | |
echo "[Sniper - Utils]" | |
echo "[Sniper - Utils] *** Download utilities:" | |
echo "[Sniper - Utils]" | |
echo "[Sniper - Utils] *** curl: ${CMD_UTILITY_CURL}" | |
echo "[Sniper - Utils] *** wget: ${CMD_UTILITY_WGET}" | |
echo "[Sniper - Utils]" | |
echo "[Sniper - Utils] *** Compression utilities" | |
echo "[Sniper - Utils]" | |
echo "[Sniper - Utils] *** zip: ${CMD_UTILITY_ZIP}" | |
echo "[Sniper - Utils] *** unzip: ${CMD_UTILITY_UNZIP}" | |
echo "[Sniper - Utils] *** tar: ${CMD_UTILITY_TAR}" | |
echo "[Sniper - Utils]" | |
echo | |
echo "[Sniper - Install]" | |
echo "[Sniper - Install] *** Android NDK(s) download args" | |
echo "[Sniper - Install] *** Revision: ${ANDROID_NDK_VERSION}, Platform: ${ANDROID_NDK_PLATFORM}, Architecture: ${ANDROID_NDK_PLATFORM_ARCH}" | |
echo "[Sniper - Install] *** Workstation: ${CURRENT_PLATFORM_ALIAS}" | |
echo "[Sniper - Install] *** Link: ${!ANDROID_NDK_TARBALL_PREFIX_VAR}" | |
echo "[Sniper - Install] *** Tarball Basename: ${ANDROID_NDK_TARBALL_BASENAME}" | |
echo "[Sniper - Install]" | |
echo | |
echo "[Sniper - Options]" | |
echo "[Sniper - Options] *** Verbose? ${ANDROID_NDKS_DL_VERBOSE}" | |
echo "[Sniper - Options] *** !!! Run dry test? ${ANDROID_NDKS_DL_DRY_TEST} !!! " | |
echo "[Sniper - Options] *** !!! Destination prefix path: ${ANDROID_NDKS_PREFIX_PATH} !!!" | |
echo "[Sniper - Options] *** !!! Destination folder name: ${ANDROID_NDK_DESTINATION_FOLDER} !!!" | |
echo "[Sniper - Options]" | |
# download specific revision function | |
function download_android_ndk_tarball | |
{ | |
ANDROID_NDK_DOWNLOAD_VERBOSE=${1:-TRUE} | |
ANDROID_NDK_DOWNLOAD_DRYTEST=${2:-TRUE} | |
# default variable if not set | |
echo | |
echo "[Sniper - Debug]" | |
ANDROID_NDK_TARGET_VERSION=${ANDROID_NDK_VERSION:-r10e} | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_VERSION: ${ANDROID_NDK_TARGET_VERSION}" | |
ANDROID_NDK_TARGET_PLATFORM=${CURRENT_PLATFORM_NAME:-darwin} | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_PLATFORM: ${ANDROID_NDK_TARGET_PLATFORM}" | |
ANDROID_NDK_TARGET_PLATFORM_ARCH=${ANDROID_NDK_PLATFORM_ARCH:-x86_64} | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_PLATFORM_ARCH: ${ANDROID_NDK_TARGET_PLATFORM_ARCH}" | |
ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH="${ANDROID_NDKS_PREFIX_PATH:-/home/dev/helpers/android/ndks/.downloads}" | |
# tidy this plz | |
mkdir -p ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/.downloads | |
ANDROID_NDK_TARGET_DESTINATION_PREFIX_PATH="${ANDROID_NDKS_PREFIX_PATH:-/home/dev/helpers/android/ndks}" | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_DESTINATION_PREFIX_PATH: ${ANDROID_NDK_TARGET_DESTINATION_PREFIX_PATH}" | |
ANDROID_NDK_TARGET_DESTINATION_FOLDER=${ANDROID_NDK_DESTINATION_FOLDER:-r10e} | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_DESTINATION_FOLDER: ${ANDROID_NDK_TARGET_DESTINATION_FOLDER}" | |
ANDROID_NDK_TARGET_DESTINATION_FULLPATH="${ANDROID_NDK_TARGET_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARGET_DESTINATION_FOLDER}" | |
echo "[Sniper - Debug] *** ANDROID_NDK_TARGET_DESTINATION_FULLPATH: ${ANDROID_NDK_TARGET_DESTINATION_FULLPATH}" | |
ANDROID_NDK_TARGET_DESTINATION_BASENAME=$(basename ${!ANDROID_NDK_TARBALL_PREFIX_VAR}) | |
echo | |
echo "[Sniper - Sub-Task ] *** Check if local tarball exists ***" | |
#if [ -f "${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" ]; then | |
#echo | |
#echo "[Sniper - |-check ] *** [EXISTS] ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME} file exists !!!!" | |
#ANDROID_NDK_TARBALL_LOCAL_EXISTS=TRUE | |
#ANDROID_NDK_TARBALL_LOCAL_MD5=$(${CMD_UTILITY_MD5} "${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" | awk '{ print $4 }') | |
#ANDROID_NDK_TARBALL_LOCAL_SHA1=$(${CMD_UTILITY_SHA1} ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}) | |
#echo | |
#echo "[Sniper - |-Execute ] *** $ ${CMD_UTILITY_MD5} ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" | |
#echo "[Sniper - |-Execute ] *** $ ${CMD_UTILITY_SHA1} ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" | |
#echo | |
#echo "[Sniper - |- Output: ] *** local sha1 checksum: ${ANDROID_NDK_TARBALL_LOCAL_SHA1}" | |
#echo "[Sniper - |- - ] *** expected sha1 checksum: ${!ANDROID_NDK_TARBALL_SHA1}" | |
#echo | |
#if [ "${ANDROID_NDK_TARBALL_LOCAL_MD5}" != "${!ANDROID_NDK_TARBALL_SHA1}" ]; then | |
#rm -fR "${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" | |
#fi | |
#else | |
#echo "[Sniper - |-check ] *** [MISSING] ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME} file missing !!!!" | |
#fi | |
echo | |
echo "[Sniper - Sub-Task ] *** Download tarball ***" | |
echo "[Sniper - |-Execute ] $ ${CMD_UTILITY_WGET} -nc -q --no-check-certificate -P ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH} ${!ANDROID_NDK_TARBALL_PREFIX_VAR}" | |
echo "[Sniper - |- Output ] *** destination download file *** : ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME}" | |
# wget opts: | |
# -q (quiet) | |
# -nc (no duplicate) | |
${CMD_UTILITY_WGET} --no-check-certificate -P ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH} ${!ANDROID_NDK_TARBALL_PREFIX_VAR} | |
echo | |
echo "[Sniper - Sub-Task ] *** Extract tarball ***" | |
echo "[Sniper - |-Execute ] $ ${CMD_UTILITY_ZIP} ${ANDROID_NDK_TARBALL_DESTINATION_PREFIX_PATH}/${ANDROID_NDK_TARBALL_BASENAME} -d ${ANDROID_NDK_TARGET_DESTINATION_FOLDER}" | |
echo "[Sniper - |- Output ] *** destination extract file" | |
${CMD_UTILITY_ZIP} ${ANDROID_NDK_TARGET_DESTINATION_FOLDER} | |
echo | |
echo "[Sniper - Sub-Task ] *** Load env vars into user's profile ***" | |
echo "[Sniper - |-Execute ] $ export ANDROID_NDK_${ANDROID_NDK_VERSION}=\"$ANDROID_NDKS_PREFIX_PATH/android-ndk-${ANDROID_NDK_VERSION}\"" | |
echo "[Sniper - |- Output ] *** load new environment variables for: Android NDK ${ANDROID_NDK_VERSION}" | |
echo | |
echo "export ANDROID_NDK_${ANDROID_NDK_VERSION}=\"$ANDROID_NDKS_PREFIX_PATH/android-ndk-${ANDROID_NDK_VERSION}\"" >> ~/.bash_profile | |
} | |
echo | |
echo "[Sniper - Execute] *** $ download_android_ndk_tarball TRUE TRUE" | |
download_android_ndk_tarball | |
echo | |
echo "[Sniper - Finished] " | |
echo | |
#download_android_ndk_tarball ${ANDROID_NDK_VERSION} ${ANDROID_NDK_PLATFORM} ${ANDROID_NDK_PLATFORM_ARCH} ${ANDROID_NDK_DESTINATION_PREFIX_PATH} ${ANDROID_NDK_DESTINATION_FOLDER} | |
# alias dl_latest_ndk=download_tarball latest | |
# all available direct links exported to env vars | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment