Re: MacOS SpringRTS OSX 10.10 Build
Posted: 16 Jul 2015, 01:00
Hi man!
Please build spring 100 for mac! It was just released!
Thanks a lot!
Please build spring 100 for mac! It was just released!
Thanks a lot!
Open Source Realtime Strategy Game Engine
https://springrts.com/phpbb/
Code: Select all
#! /bin/bash
#setup macports
#sudo port install gcc49 cmake libdevil p7zip libvorbis libsdl2 freetype glew xorg-libXcursor dylibbundler
#
#download the latest boost source and build against gcc49, but don't install. set using gcc : : g++-mp-4.9 ; in project-config.jam and replace darwin with gcc
#
#in cmake list file add
#set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib)
ROOT=~/Spring
BUILD=~/Spring/build
BUNDLE=0
ERRORBUILD=0
BOOST=~/Documents/SpringDevStuff/boost_1_58_0
MYDIR=~/Documents/SpringDevStuff/Spring # Directory where the script is and will build the app/bundle
MACPORTS=`which port | sed s/[/]bin[/]port//`
# Clean old builds
if [ -d $MYDIR/*.app ]; then
rm -r $MYDIR/*.app
fi
if [ -e $MYDIR/*.dmg ]; then
rm $MYDIR/*.dmg
fi
if [ -e $MYDIR/log.txt ]; then
rm $MYDIR/log.txt
fi
while [ "$BUNDLE" != "n" ] && [ "$BUNDLE" != "y" ]; do
read -p "Do you want to bundle the app? : y/n " BUNDLE
done
cd ~/spring
mkdir $BUILD
cd $BUILD
REV=$(git describe --tags)
VERSION=`echo "${REV}" | tr '<>:\"/\\|?*' -`
echo "....Compiling Spring-${VERSION}"
cmake .. -DCMAKE_CXX_COMPILER=$MACPORTS/bin/g++-mp-4.9 -DCMAKE_C_COMPILER=$MACPORTS/bin/gcc-mp-4.9 -DGLEW_INCLUDE_DIR=$MACPORTS/include/GL -DBOOST_ROOT=$BOOST -DBoost_USE_STATIC_LIBS=YES -DGLEW_LIBRARIES=$MACPORTS/lib/libGLEW.a >>$MYDIR/log.txt 2>&1
make spring -j8 >>$MYDIR/log.txt 2>&1
make pr-downloader -j8 >>$MYDIR/log.txt 2>&1
echo "....Making Spring-${VERSION}.app"
#Generate the spring data folder (share) by installing into a temp directory
make install-spring DESTDIR=./temp >>$MYDIR/log.txt 2>&1
mkdir $BUILD/Spring.app
mkdir $BUILD/Spring.app/Contents
mkdir $BUILD/Spring.app/Contents/MacOS
mkdir $BUILD/Spring.app/Contents/Resources
mkdir $BUILD/Spring.app/Contents/lib
cp $BUILD/spring $BUILD/Spring.app/Contents/MacOS/spring
cp ~/Spring/installer/Mac/spring.icns $BUILD/Spring.app/Contents/Resources/spring.icns
cp -R $BUILD/temp/usr/local/share $BUILD/Spring.app/Contents/share
cat ~/Spring/installer/Mac/Info.plist | sed s/###VERSION###/${VERSION}/ > $BUILD/Spring.app/Contents/Info.plist
cp $BUILD/tools/pr-downloader/src/pr-downloader $BUILD/Spring.app/Contents/MacOS
dylibbundler -cd -b -x $BUILD/libunitsync.dylib -d $BUILD/Spring.app/Contents/MacOS -p @loader_path/../MacOS >>$MYDIR/log.txt 2>&1
dylibbundler -of -cd -b -x $BUILD/Spring.app/Contents/MacOS/spring -d $BUILD/Spring.app/Contents/lib -p @executable_path/../lib >>$MYDIR/log.txt 2>&1
install_name_tool -change $MACPORTS/lib/libX11.6.dylib @executable_path/../lib/libX11.6.dylib $BUILD/Spring.app/Contents/lib/libXcursor.1.dylib >>$MYDIR/log.txt 2>&1
dylibbundler -of -cd -b -x $BUILD/Spring.app/Contents/MacOS/pr-downloader -d $BUILD/Spring.app/Contents/lib -p @executable_path/../lib >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Interfaces/C/0.1/libAIInterface.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Interfaces/C/0.1 -p @loader_path/../0.1 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Interfaces/Java/0.1/libAIInterface.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Interfaces/Java/0.1 -p @loader_path/../0.1 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/AAI/0.9/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/AAI/0.9 -p @loader_path/../0.9 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/CppTestAI/0.1/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/CppTestAI/0.1 -p @loader_path/../0.1 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/E323AI/3.25.0/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/E323AI/3.25.0 -p @loader_path/../3.25.0 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/KAIK/0.13/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/KAIK/0.13 -p @loader_path/../0.13 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/NullAI/0.1/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/NullAI/0.1 -p @loader_path/../0.1 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/RAI/0.601/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/RAI/0.601 -p @loader_path/../0.601 >>$MYDIR/log.txt 2>&1
dylibbundler -cd -b -x $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/Shard/dev/libSkirmishAI.dylib -d $BUILD/Spring.app/Contents/share/games/spring/AI/Skirmish/Shard/dev -p @loader_path/../dev >>$MYDIR/log.txt 2>&1
if [ ! -e $BUILD/Spring.app/Contents/MacOS/spring ];then
echo "Error: App did not build correctly. Check log for details"
ERRORBUILD=1
fi
mv $BUILD/Spring.app $MYDIR/Spring_${VERSION}.app
rm -R $BUILD
if [ "$BUNDLE" = "y" ] && [ "$ERRORBUILD" = "0" ]; then
echo "REQUESTED....Bundling Spring-${VERSION}.app"
cd $MYDIR
mkdir ./Spring_${VERSION}-OSX-10.10
mkdir ./Spring_${VERSION}-OSX-10.10/Docs
mv ./Spring_${VERSION}.app ./Spring_${VERSION}-OSX-10.10/Spring_${VERSION}.app
cp $ROOT/AUTHORS $ROOT/COPYING $ROOT/FAQ $ROOT/gpl-2.0.html $ROOT/gpl-2.0.txt $ROOT/gpl-3.0.html $ROOT/gpl-3.0.txt $ROOT/LICENSE $ROOT/LICENSE.html $ROOT/README.markdown $ROOT/THANKS $ROOT/doc/changelog.txt ./Spring_${VERSION}-OSX-10.10/Docs
hdiutil create -volname Spring_${VERSION}-OSX-10.10 -srcfolder ./Spring_${VERSION}-OSX-10.10 -ov -format UDZO Spring_${VERSION}-OSX-10.10.dmg >>$MYDIR/log.txt 2>&1
rm -R ./Spring_${VERSION}-OSX-10.10
fi
if [ "$ERRORBUILD" = "1" ]; then
rm -R $MYDIR/*.app
else
rm $MYDIR/log.txt
fi
echo "Done!"
exit 0
imo no documentation is needed, would be better to place instructions to the download page imo. also idk if currently springlobby can automaticly pick up the file.darklord42 wrote:Yay! On it's way!
@abama
Absolutely! Should I include any documentation with the 7z or just leave it with just the app? Why not have the .dmg with such documentation for the website link, and the 7z for springlobby? Regarding implementing my script for the build process, it's very much rigged for my computer and my own purposes (e.g. my own learning of bash), but it is pretty straight forward.. I'm sure some of it is useful to you.Code: Select all
hurry please! :)jamerlan wrote:we need to check this issue in the latest build.
Code: Select all
[f=0000000] Error: Initializing AI Interface library from file "/Users/user/.spring/engine/100.0/Spring_100.0.app/Contents//share/games/spring/AI/Interfaces/Java/0.1/libAIInterface.dylib". The call to initStatic() returned unsuccessfuly.