openscad/scripts/macosx-build-homebrew.sh

73 lines
1.7 KiB
Bash
Executable File

#!/bin/sh -e
#
# This script builds all library dependencies of OpenSCAD for Mac OS X.
# The libraries will be built in 64-bit mode and backwards compatible with 10.7 "Lion".
#
# This script must be run from the OpenSCAD source root directory
#
# Usage: macosx-build-dependencies.sh [-d]
# -d Build for deployment (if not specified, e.g. Sparkle won't be built)
#
# Prerequisites:
# - Xcode
#
# FIXME:
# o Verbose option
# o Force rebuild vs. only rebuild changes
#
OPENSCADDIR=$PWD
BASEDIR=$OPENSCADDIR/../libraries
DEPLOYDIR=$BASEDIR/homebrew
MAC_OSX_VERSION_MIN=10.7
OPTION_DEPLOY=false
printUsage()
{
echo "Usage: $0 [-d]"
echo
echo " -d Build for deployment"
}
if [ ! -f $OPENSCADDIR/openscad.pro ]; then
echo "Must be run from the OpenSCAD source root directory"
exit 0
fi
while getopts 'd' c
do
case $c in
d) OPTION_DEPLOY=true;;
esac
done
OSX_VERSION=`sw_vers -productVersion | cut -d. -f2`
if (( $OSX_VERSION >= 9 )); then
echo "Detected Mavericks (10.9) or later"
elif (( $OSX_VERSION >= 8 )); then
echo "Detected Mountain Lion (10.8)"
elif (( $OSX_VERSION >= 7 )); then
echo "Detected Lion (10.7)"
else
echo "Detected Snow Leopard (10.6) or earlier"
fi
echo "Building for $MAC_OSX_VERSION_MIN or later"
echo "Using basedir:" $BASEDIR
# Homebrew doesn't support building for other OS X versions than the current,
# but we can do this with environment variables
export MACOSX_DEPLOYMENT_TARGET=$MAC_OSX_VERSION_MIN
# Don't use bottles, as they might be built with the wrong deployment target
export HOMEBREW_BUILD_FROM_SOURCE=1
for formula in qt5 eigen boost cgal glew glib opencsg freetype libxml2 fontconfig harfbuzz; do
brew install openscad/tap/$formula
done
if $OPTION_DEPLOY; then
brew install --HEAD openscad/tap/sparkle
fi