spiegel-keyman/ios/samples/KMSample2/build.sh
2017-08-21 15:00:08 +07:00

123 lines
3.1 KiB
Bash
Executable file

#!/bin/sh
# Please note that this build script (understandably) assumes that it is running on Mac OS X.
if [[ "${OSTYPE}" == *"darwin" ]]; then
echo "This build script will only run in a Mac environment."
exit 1
fi
display_usage ( ) {
echo "build.sh [-no-update] | [-lib-build] | [-lib-ignore] | [-clean]"
echo
echo " -clean Removes all previously-existing build products for this project before building."
echo " -no-update If an in-place copy of libKeyman exists, does not seek out an updated copy."
echo " -lib-build Actively rebuilds KMEI before copying its build products to project resources."
echo " -lib-nobuild Prevents the build script from building libKeyman under any circumstances."
echo " -no-codesign Performs the build without code signing."
echo
echo " If no settings are specified this script will grab a copy of the most recent build of libKeyman,"
echo " performing an initial build of it if necessary."
exit 1
}
assert ( ) {
if ! [ -f $1 ]; then
echo "Build failed: missing $1"
exit 1
fi
}
verify_KMEI ( ) {
KMEI_BUILD_EXISTS=true
if ! [ -d "${LIB_KEYMAN_SRC}/include" ]; then
KMEI_BUILD_EXISTS=false
elif ! [ -d "${LIB_KEYMAN_SRC}/Keyman.bundle" ]; then
KMEI_BUILD_EXISTS=false
elif ! [ -f "${LIB_KEYMAN_SRC}/libKeyman.a" ]; then
KMEI_BUILD_EXISTS=false
fi
}
LIB_KEYMAN_SRC=../../engine/KMEI/build/libKeyman
LIB_KEYMAN_DEST=./
KMEI_BUILD_DIR="../../"
KMEI_BUILD="./build.sh -libKeyman"
BUILD_FOLDER=build
do_clean ( ) {
rm -rf $BUILD_FOLDER
}
### START OF THE BUILD ###
DO_UPDATE=true
FORCE_KMEI_BUILD=false
ALLOW_KMEI_BUILD=true
CODE_SIGN=true
while [[ $# -gt 0 ]] ; do
key="$1"
case $key in
-no-update)
DO_UPDATE=false
ALLOW_KMEI_BUILD=false
;;
-lib-build)
FORCE_KMEI_BUILD=true
;;
-lib-nobuild)
ALLOW_KMEI_BUILD=false
;;
-no-codesign)
CODE_SIGN=false
;;
-h|-?)
display_usage
;;
-clean)
do_clean
;;
esac
shift
done
if [ $DO_UPDATE = true ]; then
# Does a prior build of KMEI exist?
verify_KMEI
if [ $ALLOW_KMEI_BUILD = true ] && [ $FORCE_KMEI_BUILD = false ] && [ $KMEI_BUILD_EXISTS = false ]; then
echo "Previous libKeyman build information is unavailable."
FORCE_KMEI_BUILD=true
fi
if [ $FORCE_KMEI_BUILD = true ]; then
echo "Building libKeyman..."
base_dir="$(pwd)"
cd $KMEI_BUILD_DIR
$KMEI_BUILD
cd $base_dir
fi
verify_KMEI
if ! [ $KMEI_BUILD_EXISTS ]; then
echo "Build failed: could not build required libKeyman resources."
exit 1
fi
# Copy resources.
cp -Rf "$LIB_KEYMAN_SRC" "$LIB_KEYMAN_DEST"
fi
if [ $CODE_SIGN = true ]; then
xcodebuild -quiet -target KMSample1
else
xcodebuild -quiet CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -target KMSample2
fi
if [ $? = 0 ]; then
echo "Build complete."
fi