mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 00:45:32 +00:00
123 lines
3.1 KiB
Bash
Executable file
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
|