Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Contents
- ========
- 1. Prerequisites
- 2. Build Environment
- 3. SCons Build
- 4. CMake Build
- 5. Build Options
- 1. Prerequisites
- ================
- You'll need to have these libraries and their development headers installed in
- order to build Wesnoth:
- * Boost libraries:
- * Filesystem >= 1.44.0
- * Locale >= 1.48.0
- * Iostreams >= 1.36.0
- * Multi-index >= 1.36.0 (header only)
- * Random >= 1.48.0
- * Regex >= 1.36.0
- * Serialization >= 1.36.0 (header only)
- * Asio >= 1.36.0 (header only)
- * Program Options >= 1.36.0
- * System >= 1.36.0
- * SDL libraries:
- * SDL >= 1.2.10
- * SDL_image >= 1.2.0 (with PNG and JPEG support)
- * SDL_mixer >= 1.2.12 (with Ogg Vorbis support)
- * SDL_ttf >= 2.0.8
- * SDL_net
- * Vorbisfile
- * libbz2
- * libz
- The following libraries are optional dependencies that enable additional
- features:
- * D-Bus (libdbus-1):
- Desktop notifications on Linux, *BSD, etc.
- * libpng:
- PNG screenshots, otherwise only BMP is supported
- * GNU history (libreadline):
- Command history and history expansion in the built-in Lua console.
- Note that although different Boost version requirements are listed, individual
- libraries from different releases are generally incompatible with each other
- and you should not mix and match.
- Also note that SDL 1.2.14 is known to have problems on Windows, so we advise
- you to use SDL 1.2.15 instead.
- Although not recommended, you may use libintl on platforms other than Windows
- instead of Boost.Locale. For scons, set the `libintl` option to `true`.
- It is possible, but unsupported, to compile the game with any previous version
- of SDL_mixer >= 1.2.0, at the cost of reduced Unicode support.
- 2. Build Environment
- ====================
- The following build systems are fully supported for compiling Wesnoth on most
- platforms:
- * SCons >= 0.98.3
- * CMake >= 2.6.0
- You will also need to have a working installation of GNU gettext to build the
- translations.
- While Wesnoth may be easily installed system-wide using SCons or CMake, it is
- also possible to run it directly from the source directory after building. This
- may be useful in situations where you don't have root access or need to
- rebuild Wesnoth frequently (i.e. for development and testing).
- Note: It has been reported that using GCC 3.3.6 and earlier versions with
- optimizations enabled will result in a build that is incapable of using
- multiplayer. See <https://gna.org/bugs/?10326> for further details. We
- recommend using GCC 4.x to build Wesnoth.
- 3. SCons Build
- ==============
- Unlike CMake or the classic "autotools" build-system (configure && make),
- configuration and building are done in the same step with SCons.
- Simply type `scons` in the top-level directory to build the game client and
- MP server:
- $ scons
- It is possible to select individual targets to build by naming them in the
- command line separated by spaces.
- To build the game client only:
- $ scons wesnoth
- Building the MP server only:
- $ scons wesnothd
- The `install` target will install any binaries that were previously compiled
- (use su or sudo if necessary to write files into the installation prefix):
- # scons install
- SCons takes a `prefix=` argument that specifies where to install the game and
- its resource files. The prefix defaults to `/usr/local`; for production builds,
- you may wish to use `/usr` instead:
- $ scons prefix=/usr
- 4. CMake Build
- ==============
- Unlike SCons, CMake has separate configuration and build steps. Configuration
- is done using CMake itself, and build is done using 'make'.
- There are two ways to build Wesnoth with CMake: inside the source tree or
- outside of it. Out-of-source builds have the advantage that you can have
- multiple builds with different options from one source directory.
- To build Wesnoth out of source:
- $ mkdir build && cd build
- $ cmake .. -DCMAKE_BUILD_TYPE=Release
- $ make
- To build Wesnoth in the source directory:
- $ cmake . -DCMAKE_BUILD_TYPE=Release
- $ make
- To install Wesnoth after building (as root using su or sudo if necessary):
- # make install
- To change build options, you can either pass the options on the commandl ine:
- $ cmake .. -DOPTION_NAME=option_value
- Or use the ccmake front-end which displays all options with their cached values
- on a console UI:
- $ ccmake ..
- Another possibility is to use a question-based interface, which may be more
- convenient for some cases:
- $ cmake -i ..
- 5. Build Options
- ================
- A full list of options supported by SCons along with their descriptions and
- defaults is available by running `scons --help` from the Wesnoth source. For
- CMake, you may either run the ccmake front-end or run cmake and open
- CMakeCache.txt from the build directory in a text editor.
- $ scons option_name1=option_value1 [option_name2=option_value2 [...]]
- $ cmake -DOPTION_NAME1=option_value1 [-DOPTION_NAME2=option_value2 [...]]
- With SCons, boolean options take 'yes' or 'true' for a true value, and 'no' or
- 'false' for a false value. CMake uses 'ON' for a true value, and 'OFF' for a
- false value.
- Some of the most important options follow.
- * build=<build type> (SCons)
- CMAKE_BUILD_TYPE=<build type> (CMake)
- Selects a specific build configuration when compiling. 'release' produces
- the default, optimized (-O2) build for regular use. 'debug' produces a
- slower and larger unoptimized (-O0) build with full debug symbols, which is
- often needed for obtaining detailed backtraces when reporting bugs.
- NOTE: By default, CMake will produce 'debug' builds unless a different
- configuration option is passed in the command line.
- * ENABLE_GAME=<boolean> (CMake)
- Whether to build the game client binary. Use command line target selection
- selection with SCons.
- * ENABLE_SERVER=<ON/OFF> (CMake)
- Whether to build the MP server binary. Use command line target selection
- selection with SCons.
- * prefix=<full path> (SCons)
- CMAKE_INSTALL_PREFIX=<full path> (CMake)
- Installation prefix for binaries, resources, and documentation files.
- * nls=<boolean>
- ENABLE_NLS=<boolean> (CMake)
- Whether to compile and install translations.
- * strict=<boolean> (SCons)
- ENABLE_STRICT_COMPILATION=<ON/OFF> (CMake)
- Whether to treat compiler warnings as errors or not. Primarily intended for
- developers.
- * prefsdir=<directory name> (SCons)
- PREFERENCES_DIR=<directory name> (CMake)
- Hardcoded user preferences and user data directory. The default is to leave
- this unspecified so that Wesnoth will use separate XDG paths such as
- .config/wesnoth and .local/share/wesnoth/<version> for its user preferences
- and data, respectively.
- * cxxtool=<program> (SCons)
- CMAKE_CXX_COMPILER=<program> (CMake)
- Specifies which C++ compiler to use. By default, the system's default C++
- compiler will be selected automatically during configuration.
- * ccache=<boolean> (SCons)
- Whether to run the compiler through ccache first. Useful if the compiler
- executable is not a symbolic link to ccache. Requires ccache to be
- installed first.
- If using CMake, use CMAKE_CXX_COMPILER instead.
- * extra_flags_<build>=<compiler flags> (SCons)
- extra_flags_config=<compiler flags> (SCons)
- CXX_FLAGS_USER=<compiler flags> (CMake)
- Additional compiler flags to use when compiling a specific build type
- (SCons-only). To apply the same flags to all builds, use extra_flags_config
- (SCons) or CXX_FLAGS_USER (CMake) without a build type suffix.
- Alternatively, you may specify your flags in the CXXFLAGS environment
- variable.
- * fifodir=<full path> (SCons)
- FIFO_DIR=<full path> (CMake)
- server_uid=<UID> server_gid=<GID> (SCons)
- SERVER_UID=<UID> SERVER_GID=<GID> (CMake)
- Directory and owner id for the wesnothd control FIFO file. This is relevant
- only if you wish to be able to communicate with a locally-running wesnothd
- instance through a named pipe. You must run wesnothd with the same UID
- specified at build time for this to work.
Advertisement
Add Comment
Please, Sign In to add comment