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
- * Fontconfig >= 2.4.1
- * Pango >= 1.21.3 (with Cairo backend)
- * Vorbisfile
- * libbz2
- * libz
- The following libraries are optional dependencies that enable additional
- features:
- * libpng:
- PNG screenshots, otherwise only BMP is supported.
- * D-Bus (libdbus-1):
- Desktop notifications on Linux, *BSD, etc.
- * 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`.
- 2. Build Environment
- ====================
- You can obtain the source code tarball for the latest version from
- <http://www.wesnoth.org/downloads>.
- Before building, make sure to untar the package and change into the newly
- created directory:
- $ tar xvJf wesnoth-<version>.tar.xz
- $ cd wesnoth-<version>
- The following build systems are fully supported for compiling Wesnoth on Linux,
- *BSD, and other Unix-like 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 command line:
- $ cmake .. -DOPTION_NAME=option_value
- Or use either the `ccmake` or `cmake-gui` front-ends, which display all options
- and their cached values on a console and graphical UI, respectively.
- $ ccmake ..
- $ cmake-gui ..
- 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` or `cmake-gui` front-ends, or run
- `cmake` and open the generated 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 instead.
- * ENABLE_SERVER=<boolean> (CMake)
- Whether to build the MP server binary. Use command line target selection
- selection with SCons instead.
- * prefix=<full path> (SCons)
- CMAKE_INSTALL_PREFIX=<full path> (CMake)
- Installation prefix for binaries, resources, and documentation files.
- * nls=<boolean> (SCons)
- ENABLE_NLS=<boolean> (CMake)
- Whether to compile and install translations.
- * strict=<boolean> (SCons)
- ENABLE_STRICT_COMPILATION=<boolean> (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 automatically selected 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_<buildtype>=<flags> (SCons)
- extra_flags_config=<flags> (SCons)
- CXX_FLAGS_USER=<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 local 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