ember/scripts/update_lua_bindings.sh
Peter Szücs e7cf7b40b2 Use implicit isEqual operator.
For unknown reasons, std::map iterators in libc++ hasn't got explicit isEqual operators.
Maybe the C++ standard is not requiring it.
This hack will convert explicit isEqual to implicit isEqual.
This should not change code behaviour.
2016-12-28 18:40:39 +01:00

18 lines
1 KiB
Bash
Executable file

#! /bin/sh
#tolua++ will for some reason translate "const std::string" into "const,std::string", so we need to remove these incorrect commas from the final code
#some versions will also for some unexplainable reason not correctly remove the tolua specific directive tolua_outside, so we need to clean that out also
#We'll also replace the inclusion of "tolua++.h" with our own version which has better support for building on win32.
echo "Updating lua bindings."
#If the TOLUAXX environment variable isn't set default to using the command "tolua++".
if [ x${TOLUAXX} = x ]; then
TOLUAXX=tolua++
fi
${TOLUAXX} $2 -n $1 > $3
grep -q '** tolua internal error' $3 && cat $3 && exit 1
if [ "`echo $OSTYPE | grep darwin`" != "" ] ; then
sed -i "" -e 's/const,/const /g' -e 's/tolua_outside//g' -e 's/tolua++\.h/components\/lua\/embertolua++\.h/' -e 's/self->operator==(\*value)/(\*self == \*value)/g' $3
else
sed -i -e 's/const,/const /g' -e 's/tolua_outside//g' -e 's/tolua++\.h/components\/lua\/embertolua++\.h/' -e 's/self->operator==(\*value)/(\*self == \*value)/g' $3
fi