diff --git a/INSTALL.md b/INSTALL.md index bf26d27b363..04acf2f73ba 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,14 +1,6 @@ -Contents -======== +# Building Wesnoth from Source - 1. Prerequisites - 2. Build Environment - 3. SCons Build - 4. CMake Build - 5. Build Options - - -## 1. Prerequisites +## Prerequisites Wesnoth requires a compiler with sufficient C++14 support such as GCC 5.0 and later, or Clang 3.8 and later. @@ -52,7 +44,7 @@ features: of the user interface. -## 2. Build Environment +## Build Environment You can obtain the source code tarball for the latest version from . @@ -86,7 +78,7 @@ For Windows users, a Visual C++ 2013 solution is included in _projectfiles/VC12_ For OS X users, an XCode project is included in _projectfiles/XCode_. -## 3. SCons Build +## SCons Build Unlike CMake or the classic "autotools" build-system (configure && make), configuration and building are done in the same step with SCons. @@ -110,7 +102,7 @@ Building the MP server only: 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 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, @@ -119,7 +111,7 @@ you may wish to use `/usr` instead: $ scons prefix=/usr -## 4. CMake Build +## CMake Build Unlike SCons, CMake has separate configuration and build steps. Configuration is done using CMake itself, and the actual build is done using `make`. @@ -154,7 +146,7 @@ and their cached values on a console and graphical UI, respectively. $ cmake-gui .. -## 5. Build Options +## 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 @@ -169,82 +161,18 @@ 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. +### Some of the most important options follow. - * build= (SCons) - CMAKE_BUILD_TYPE= (CMake) - - Selects a specific build configuration when compiling. `release` produces - the default, optimized (-O3) 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. - - * ENABLE_GAME= (CMake) - - Whether to build the game client binary. Use command line target selection - selection with SCons instead. - - * ENABLE_SERVER= (CMake) - - Whether to build the MP server binary. Use command line target selection - selection with SCons instead. - - * prefix= (SCons) - CMAKE_INSTALL_PREFIX= (CMake) - - Installation prefix for binaries, resources, and documentation files. - - * nls= (SCons) - ENABLE_NLS= (CMake) - - Whether to compile and install translations. - - * strict= (SCons) - ENABLE_STRICT_COMPILATION= (CMake) - - Whether to treat compiler warnings as errors or not. Primarily intended for - developers. - - * prefsdir= (SCons) - PREFERENCES_DIR= (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/ for its user preferences - and data, respectively. - - * cxxtool= (SCons) - CMAKE_CXX_COMPILER= (CMake) - - Specifies which C++ compiler to use. By default, the system's default C++ - compiler will be automatically selected during configuration. - - * ccache= (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_= (SCons) - extra_flags_config= (SCons) - CXX_FLAGS_USER= (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= (SCons) - FIFO_DIR= (CMake) - - server_uid= server_gid= (SCons) - SERVER_UID= SERVER_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. +| Scons | CMake | Description | +|------------------------------------------------------------------------|--------------------------------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `build=` | `CMAKE_BUILD_TYPE=` | Selects a specific build configuration when compiling. `release` produces the default, optimized (-O3) 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. | +| | `ENABLE_GAME=` | Whether to build the game client binary. Use command line target selection selection with SCons instead. | +| | `ENABLE_SERVER=` | Whether to build the MP server binary. Use command line target selection with SCons instead. | +| `prefix=` | `CMAKE_INSTALL_PREFIX=` | Installation prefix for binaries, resources, and documentation files. | +| `nls=` | `ENABLE_NLS=` | Whether to compile and install translations. | +| `strict=` | `ENABLE_STRICT_COMPILATION=` | Whether to treat compiler warnings as errors or not. Primarily intended for developers. | +| `prefsdir=` | `PREFERENCES_DIR=` | 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/ for its user preferences and data, respectively. | +| `cxxtool=` | `CMAKE_CXX_COMPILER=` | Specifies which C++ compiler to use. By default, the system's default C++ compiler will be automatically selected during configuration. | +| `ccache=` | | 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_ =` `extra_flags_config=` | `CXX_FLAGS_USER=` | 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=` `server_uid=` `server_gid=` | `FIFO_DIR=` `SERVER_UID=` `SERVER_GID=` | 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. |