Skip to content
Browse files

Improve Xcode templates post build script : now copy freetype too

Additionally, the script is more robust and can explain what failed.
  • Loading branch information...
1 parent 54bc864 commit a674135834c3079f8502dffedd7519e7de32493c @mantognini mantognini committed
Showing with 51 additions and 9 deletions.
  1. +51 −9 tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist
View
60 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
}

0 comments on commit a674135

Please sign in to comment.
Something went wrong with that request. Please try again.