# inputs
# $PROJ - project name (cmake|ninja|swig)
# $VER - project version
# $1 - name of this file
#
# this file does the following:
#
# 1) define the following env vars
# OS - linux|darwin|windows
# USER - username
# CORES - numer of cores (for parallel builds)
# PATH (with appropriate compilers)
# CFLAGS/CXXFLAGS/LDFLAGS
# RD - root directory for source and object files
# INSTALL - install directory/git repo root
# SCRIPT_FILE=absolute path to the parent build script
# SCRIPT_DIR=absolute path to the parent build script's directory
# COMMON_FILE=absolute path to this file
#
# 2) create an empty tmp directory at /tmp/$PROJ-$USER
# 3) checkout the destination git repo to /tmp/prebuilts/$PROJ/$OS-x86/$VER
# 4) cd $RD
UNAME="$(uname)"
case "$UNAME" in
Linux)
SCRATCH=/tmp
OS='linux'
INSTALL_VER=$VER
;;
Darwin)
SCRATCH=/tmp
OS='darwin'
OSX_MIN=10.6
export CFLAGS="$CFLAGS -mmacosx-version-min=$OSX_MIN"
export CXXFLAGS="$CXXFLAGS -mmacosx-version-min=$OSX_MIN"
export LDFLAGS="$LDFLAGS -mmacosx-version-min=$OSX_MIN"
INSTALL_VER=$VER
;;
*_NT-*)
if [[ "$UNAME" == CYGWIN_NT-* ]]; then
PATH_PREFIX=/cygdrive
else
# MINGW32_NT-*
PATH_PREFIX=
fi
SCRATCH=$PATH_PREFIX/d/src/tmp
USER=$USERNAME
OS='windows'
CORES=$NUMBER_OF_PROCESSORS
# VS2013 x64 Native Tools Command Prompt
case "$MSVS" in
2013)
export PATH="$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64/":"$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/":"$PATH"
export INCLUDE="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt;"
export LIB="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64;"
export LIBPATH="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\References\\CommonConfiguration\\Neutral;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1\\ExtensionSDKs\\Microsoft.VCLibs\\12.0\\References\\CommonConfiguration\\neutral;"
INSTALL_VER=${VER}_${MSVS}
;;
*)
# g++/make build
export CC=x86_64-w64-mingw32-gcc
export CXX=x86_64-w64-mingw32-g++
export LD=x86_64-w64-mingw32-ld
;;
esac
;;
*)
exit 1
;;
esac
# OSX lacks a "realpath" bash command
realpath() {
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}
SCRIPT_FILE=$(realpath "$0")
SCRIPT_DIR="$(dirname "$SCRIPT_FILE")"
COMMON_FILE="$SCRIPT_DIR/$1"
RD=$SCRATCH/$PROJ-$USER
INSTALL="$RD/install"
cd /tmp # windows can't delete if you're in the dir
rm -rf $RD
mkdir -p $INSTALL
mkdir -p $RD
cd $RD
commit_and_push()
{
# check into a local git clone
rm -rf $SCRATCH/prebuilts/$PROJ/
mkdir -p $SCRATCH/prebuilts/$PROJ/
cd $SCRATCH/prebuilts/$PROJ/
git clone https://android.googlesource.com/platform/prebuilts/$PROJ/$OS-x86
GIT_REPO="$SCRATCH/prebuilts/$PROJ/$OS-x86"
cd $GIT_REPO
git rm -r * || true # ignore error caused by empty directory
if [ -n "${EXTRA_FILE}" ]; then
git reset -- $EXTRA_FILE
git checkout HEAD -- $EXTRA_FILE
fi
mv $INSTALL/* $GIT_REPO
cp $SCRIPT_FILE $GIT_REPO
cp $COMMON_FILE $GIT_REPO
git add .
git commit -m "Adding binaries for ${INSTALL_VER}${EXTRA_COMMIT_MSG}"
# execute this command to upload
#git push origin HEAD:refs/for/master
rm -rf $RD || true # ignore error
}