diff --git a/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist b/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist index 098bc37f..19033b11 100644 --- a/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist +++ b/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist @@ -155,35 +155,77 @@ case "$SFML_BINARY_TYPE" in ;; esac +# Echoes to stderr +error () # $* message to display +{ + echo $* 1>&2 + exit 2 +} + +assert () # $1 is a boolean, $2...N is an error message +{ + if [ $# -lt 2 ] + then + error "Internal error in assert : not enough args" + fi + + if [ $1 -ne 0 ] + then + shift + error "$*" + fi +} + +force_remove () # $1 is a path +{ + test $# -eq 1 + assert $? "force_remove() requires one parameter" + rm -fr "$1" + assert $? "couldn't remove $1" +} + +copy () # $1 is a source, $2 is a destination +{ + test $# -eq 2 + assert $? "copy() requires two parameters" + ditto "$1" "$2" + assert $? "couldn't copy $1 to $2" +} + require () # $1 is a SFML module like 'system' or 'audio' { dest="$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Contents/Frameworks" if [ -z "$1" ] then - echo "no parameter! ERROR!" - exit + error "require() requires one parameter!" else # clean potentially old stuff - rm -f "$dest/libsfml-$1.2.dylib" - rm -f "$dest/libsfml-$1-d.2.dylib" - rm -fr "$dest/sfml-$1.framework" + force_remove "$dest/libsfml-$1.2.dylib" + force_remove "$dest/libsfml-$1-d.2.dylib" + force_remove "$dest/sfml-$1.framework" # copy SFML libraries if [ "$frameworks" = "true" ] then - ditto "/Library/Frameworks/sfml-$1.framework" "$dest/sfml-$1.framework" + copy "/Library/Frameworks/sfml-$1.framework" "$dest/sfml-$1.framework" elif [ $CONFIGURATION = "Debug" ] && [ $SFML_LINK_DYLIBS_SUFFIX_DEBUG != "" ] then - ditto "/usr/local/lib/libsfml-$1-d.2.dylib" "$dest/libsfml-$1-d.2.dylib" + copy "/usr/local/lib/libsfml-$1-d.2.dylib" "$dest/libsfml-$1-d.2.dylib" else - ditto "/usr/local/lib/libsfml-$1.2.dylib" "$dest/libsfml-$1.2.dylib" + copy "/usr/local/lib/libsfml-$1.2.dylib" "$dest/libsfml-$1.2.dylib" fi if [ "$1" = "audio" ] then # copy sndfile framework too - ditto "/Library/Frameworks/sndfile.framework" "$dest/sndfile.framework" + copy "/Library/Frameworks/sndfile.framework" "$dest/sndfile.framework" + fi + + if [ "$1" = "graphics" ] + then + # copy freetype framework too + copy "/Library/Frameworks/freetype.framework" "$dest/freetype.framework" fi fi }