Skip to content
Vasiliy Yeremeyev edited this page May 19, 2016 · 3 revisions

Building

Only 64-bit Linux version is being developed/supported by now, however Shadowgrounds are supposed to be working on Windows/Linux/Mac. Any assistance is welcomed.

External dependencies:

  • Boost 1.42
  • SDL (core, sound, image, ttf)
  • OpenGL
  • OpenAL
  • GTK2
  • ZLIB

PhysX SDK isn't supported yet.

Easy way

Checkouting and building is simple (Linux):

git clone git://github.com/vayerx/shadowgrounds.git
mkdir shadowgrounds/build
cd shadowgrounds/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Make supports two targets: shadowgrounds and survivor (both are build by default).
Location of data-files (data*.fbz, data/, survivor/) can be specified by {SHADOWGROUNDS,SURVIVOR}_DATA_PATH / CMAKE_DATA_PATH variables in cmake configuration or by --data command-line argument.
Shadowgrounds live-ebuilds for Gentoo Linux are available at vayerx overlay as games-action/shadowgrounds.

Hard way

Alternative (original) make-only build:

# need to create libunzip.a
# once only
# should integrate to build system
# but unzip is old shit C code and g++ barfs on it
cd filesystem/detail
gcc -c -o ioapi.o -O ioapi.c
gcc -c -o unzip.o -O unzip.c
ar r libunzip.a ioapi.o unzip.o
ranlib libunzip.a
mv libunzip.a ../../binaries/
cd ../..

cd binaries
cp example.mk local.mk
# Edit local.mk to suit your tastes.

# Create necessary subdirectories. Only needed the first time and when directory structure changes
make bindirs

# The build system is parallel build safe, add -j<n> if you like
make

Make-only build won't be supported in favour of CMake.

Run-time data

You can specify data location at run-time: shadowgrounds --data=/usr/share/games/shadowgrounds. You can also change the default path at compile-time: cmake -DSHADOWGROUNDS_DATA_PATH=/usr/share/games/shadowgrounds ... or via CMAKE_DATA_PATH -- it is a prefix of data directory: **/usr/share/games/**shadowgrounds .

Similarly for Survivor.

Build issues

SDLmain

SDLmain library (part of SDL) may be supplied as an stand-alone package. CMake will fail like this:

The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
SDLMAIN_LIBRARY

Gentoo Linux supplies SDLmain as a part of media-libs/libsdl. On Fedora you'll have to install SDL-static.x86_64.

Clone this wiki locally