Latest Posts

Changes in Building_Widelands_on_macOS

Old Title


Editor Comment

Added MacPorts, which worked for me (so far)

Revision Differences of Revision 17

# Building Widelands on Mac OS ¶

First, install [Homebrew](
( [MacPorts]( should work, too) ¶
You will also need to install XCode for bothis of them. ¶

We will need a recent compiler: ¶

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

I also strongly suggest installing [ccache]( 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 bzr cmake gettext libiconv icu4c ¶

$ brew link --force libpng ¶
$ brew link --force gettext ¶
$ brew link --force icu4c ¶
$ brew install sdl_image ¶

If you want to build a bundle of Widelands, you might need to run something along these lines for icu: ¶

$ install_name_tool -change '@loader_path/libicudata.52.dylib' /usr/local/opt/icu4c/lib/libicudata.52.dylib /usr/local/opt/icu4c/lib/libicuuc.52.1.dylib ¶

We need a recent libz. This might not be necessary on a recent Mac OS, but it was on my machine: ¶

$ brew tap homebrew/dupes; brew install zlib ¶

Same for bzip2: ¶

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

I also had to edit gettext (brew 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, ./ should just work. If not, have a look at the BuildWidelands() function in utils/macos/ 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 bundle and package it into a .dmg.