Currently Online

Latest Posts

Changes in Building_Widelands_on_macOS

Old Title

BuildingWidelandsMac


Editor Comment

Clarifications and rewordings. Calling this site done for now.


Revision Differences of Revision 14

# Building Widelands on Mac OS ¶

These instructions are for Building Widelands on Mac with static libraries (needed for Releases), but glancing over it you should be able to figure out how to do it in a normal fashion too. ¶

First, install [Homebrew](http://brew.sh/). You will also need to install XCode for this. ¶

We will need a recent compiler: ¶

$ brew tap homebrew/versions ¶
$ brew install --enable-cxx gcc48 ¶

I also strongly suggest installing [ccache](http://ccache.samba.org/) so that incremental builds do not take ages. ¶

$ brew install ccache ¶

Install python and bzr ¶

$ brew install python && brew install bzr ¶

Then install all the dependencies of Widelands: ¶

$ brew install sdl libjpeg libpng libogg libvorbis libsdl_mixer sdl_net libsdl_ttf libsdl_gfx boost glew lua bzr cmake gettext libiconv ¶
$ brew link --force libpng ¶
$ brew link --force gettext ¶
$ brew install sdl_image ¶

WRight now, we need a liblua that is statically linked (in the future Widelands will ship with Lua source code). Easiest way is something along these lines: ¶

$ brew unpack lua; cd lua*; make macosx; cp src/liblua.a /usr/local/lib/liblua.a ¶

Same for libz.a ¶

$ brew tap homebrew/dupes; brew install zlib ¶

And for bzip2: ¶

$ wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz; tar xzvf bzip2-1.0.6.tar.gz; cd bzip2-1.0.6; make; cp libbz2.a /usr/local/lib/libbz2.a ¶

AndI for alibicsonv, Ihad rectommend editing gethtext (brew file and adding in --enable-static. I also had to edit gettext) and add in --with-libiconv-prefix=/usr/local/opt/libiconv/ to link it correctly with homebrew's gettext. ¶

At one point you must also check out the source code of Widelands of course. This takes forever if you want to have the full version history (which you might want if you want to do serious development), but if you are only wanting to build widelands without changing much you can try: ¶

$ bzr checkout --lightweight lp:widelands wl_bzr ¶

From there on out, ./compile.sh should just work. If not, have a look at the BuildWidelands() function in utils/macos/build_app.sh. This script is used to make the daily builds for Widelands, so it contains all steps that are needed on my system to build Widelands from scratch, make a Widelands.app bundle and package it into a .dmg.