253 lines
7.2 KiB
Plaintext
253 lines
7.2 KiB
Plaintext
Table of Contents
|
|
=================
|
|
1 How to compile Pioneer
|
|
1.1 Linux - CMake
|
|
1.2 Windows - MSVC
|
|
1.3 Windows - CMake and MSYS2 (and MinGW-w64)
|
|
1.4 OS X - Homebrew
|
|
1.5 OS X - CMake and XCode
|
|
2 pioneer-thirdparty
|
|
2.1 Linux - Autotools
|
|
2.2 Windows - MSVC
|
|
2.3 Windows - Autotools (Linux cross-compile)
|
|
2.4 OSX
|
|
3 Building documentation
|
|
3.1 Lua API - Natural Docs
|
|
3.2 C++ source - Doxygen
|
|
4 Faster startup
|
|
4.1 precompile models
|
|
|
|
|
|
1 How to compile Pioneer
|
|
========================
|
|
|
|
Pioneer is known to build on the following platforms and build systems:
|
|
|
|
Linux: CMake with GCC or Clang
|
|
Windows: Microsoft Visual C++ 2015 (Community or Pro)
|
|
Microsoft Visual C++ 2017 (Community or Pro)
|
|
CMake with MSYS2 (and MinGW-w64)
|
|
OS X: XCode 4 or Homebrew or CMake
|
|
|
|
There is an additional repository called pioneer-thirdparty that contains
|
|
various files that may assist with building. If the instructions for your
|
|
platforms indicates you may need it, then read the section below for details.
|
|
|
|
If you're having trouble compiling, please ask in #pioneer on
|
|
irc.freenode.net. Most users are available to answer during CET daytime, but
|
|
questions are welcome anytime.
|
|
|
|
|
|
1.1 Linux - CMake
|
|
---------
|
|
|
|
1. Install the following libraries (with development headers) for your system.
|
|
If your system is not Debian/Ubuntu based, they may have different names.
|
|
|
|
Debian/Ubuntu
|
|
-------------
|
|
g++
|
|
cmake
|
|
mesa-common-dev
|
|
libfreeimage-dev
|
|
libglew-dev
|
|
libfreetype6-dev
|
|
libsigc++-2.0
|
|
libsigc++-2.0-dev
|
|
libvorbis-dev
|
|
libassimp-dev >= 3.2
|
|
libsdl2-dev
|
|
libsdl2-image-dev
|
|
|
|
If your platform doesn't have assimp 3.2, you'll need to build it from
|
|
source. It's available in pioneer-thirdparty, see below.
|
|
|
|
2. Run './bootstrap' to generate CMake build files in the 'build' folder.
|
|
For advanced users, this command passes any additional arguments to the
|
|
CMake process.
|
|
|
|
3. Run 'make -C build -jX', where X is the number of CPU cores you have. If in
|
|
doubt, 4 is a good default. This will compile the pioneer executable.
|
|
|
|
4. Run `./pioneer` to start the game!
|
|
|
|
|
|
1.2 Windows - MSVC
|
|
------------------
|
|
|
|
1. Get both the pioneer and the pioneer-thirdparty repositories and keep them
|
|
in a directory side by side. Don't rename pioneer-thirdparty because the
|
|
relative path to it is included in the project files.
|
|
|
|
2. Open the pioneer solution from /win32/vc2015/pioneer.sln
|
|
or /win32/vc2017/pioneer.sln according to your MSVC version.
|
|
|
|
3. Build and run the project or solution. Note: the default is to build debug
|
|
version, which is what you want if developing, but release gives an executable
|
|
optimized for performance.
|
|
|
|
|
|
1.3 Windows - CMake and MSYS2 (and MinGW-w64)
|
|
---------------------------------------------
|
|
|
|
1. Install MSYS2 (https://www.msys2.org).
|
|
|
|
2. Install MinGW-w64 from MSYS2. Use the mingw64 shell.
|
|
|
|
3. Install the dependencies (similar to dependencies of Linux) using the
|
|
'pacman' command. Note: you should install the dependencies from the
|
|
MinGW-w64 repository.
|
|
|
|
4. Additionally, install GLEW.
|
|
|
|
5. Goto the root directory of Pioneer, run 'mkdir build; cd build'. Then run
|
|
'cmake .. -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND" -DUSE_SYSTEM_LIBGLEW=ON'
|
|
Alternatively, these command can be run using the ./bootstrap file with
|
|
additional arguments.
|
|
|
|
6. Compile Pioneer by running 'mingw32-make.exe'.
|
|
|
|
7. Now, you can go back to the root directory of Pioneer and do './build/pioneer.exe'
|
|
to play the game.
|
|
|
|
|
|
1.4 OS X - Homebrew
|
|
-------------------
|
|
|
|
1. Install Homebrew package manager (http://brew.sh/) if you don't have one yet.
|
|
|
|
2. Build and install pioneer. Required dependencies will be installed together.
|
|
|
|
brew install homebrew/games/pioneer
|
|
|
|
Or you may want to tap homebrew-games first and then install.
|
|
|
|
brew tap homebrew/games
|
|
brew install pioneer
|
|
|
|
If you want master branch from GitHub, add '--HEAD' option.
|
|
|
|
brew install --HEAD pioneer
|
|
|
|
|
|
1.5 OS X - CMake and XCode
|
|
--------------------------
|
|
|
|
THESE INSTRUCTIONS ARE APPROXIMATE AND ARE UNTESTED; PLEASE SUBMIT CORRECTIONS!
|
|
|
|
1. Install XCode (free download from Apple) as in the 'OS X Autotools'
|
|
instructions.
|
|
|
|
2. Install required libraries, as in the 'OS X Autotools' instructions.
|
|
|
|
3. Install CMake, from https://cmake.org/download/, or via MacPorts.
|
|
|
|
4. Create a new directory for the build files. Use the CMake GUI to generate
|
|
an XCode project in the new directory.
|
|
|
|
5. Open the project in XCode and build 'pioneer'.
|
|
|
|
|
|
2 pioneer-thirdparty
|
|
====================
|
|
|
|
The pioneer-thirdparty repository contains:
|
|
- source for dependencies that may be difficult to obtain or build
|
|
- pre-built dependencies for MSVC targets
|
|
|
|
To get it, clone git://github.com/pioneerspacesim/pioneer-thirdparty.git.
|
|
|
|
|
|
2.1 Linux - Autotools and CMake
|
|
---------------------
|
|
|
|
1. Clone the thirdparty repo to './pioneer-thirdparty' and 'cd' into it.
|
|
|
|
2. Run 'autoconf' to generate configuration files, then run './configure' to
|
|
configure the build.
|
|
|
|
3. Run make <package> to compile and prepare the named package for use with
|
|
Pioneer, or just run make alone to build everything.
|
|
|
|
4. From the pioneer directory, run `./bootstrap thirdparty` to generate a CMake
|
|
configuration that builds with the thirdparty libraries.
|
|
|
|
5. Build pioneer as described in section 1.1.
|
|
|
|
|
|
2.2 Windows - MSVC
|
|
------------------
|
|
|
|
1. After cloning the repo, move it to a folder called "pioneer-thirdparty"
|
|
alongside your "pioneer" folder.
|
|
|
|
|
|
2.3 Windows - Autotools (Linux cross-compile)
|
|
---------------------------------------------
|
|
|
|
1. After cloning the repo, run autoconf to generate 'configure'.
|
|
|
|
2. Run ./configure --with-mxe=/path/to/mxe to configure the build.
|
|
|
|
3. Run make <package> to compile and prepare the named package for use with
|
|
Pioneer, or just run make alone to build everything.
|
|
|
|
|
|
2.4 OSX
|
|
-------
|
|
|
|
- pioneer-thirdparty currently not required.
|
|
|
|
|
|
|
|
3 Building documentation
|
|
========================
|
|
|
|
This section describes how to build html-documentation which is stored on disk
|
|
for the local pioneer source tree.
|
|
|
|
|
|
3.1 Lua API - Natural Docs
|
|
--------------------------
|
|
|
|
Pioneer is extensible through the Lua scripting language. It is used for
|
|
modules such as missions and BBS interaction. See the pioneer wiki for further
|
|
details. For up-to-date documentation one can build it locally from the
|
|
pioneer source
|
|
|
|
0. Install dependencies: naturaldocs (v 1.x)
|
|
|
|
1. Run make -C build codedoc
|
|
|
|
2. The html documentation can be found in the codedoc/ folder
|
|
|
|
|
|
3.2 C++ source - Doxygen
|
|
------------------------
|
|
|
|
To build html-documentation of the pioneer C++ source, doxygen needs to be
|
|
installed, as well as the graphviz package, from where dot is used for
|
|
visualizing inheritance as graphs. To enable LaTeX output, set GENERATE_LATEX
|
|
= YES in the configuration file doxygen/Doxyfile. Same goes for xml, man, rtf.
|
|
|
|
0. Install dependencies: doxygen and graphviz
|
|
|
|
1. Run doxygen from the doxygen/ folder.
|
|
|
|
2. The html documentation will be available from doxygen/html/index.html
|
|
|
|
|
|
|
|
4 Faster startup
|
|
================
|
|
|
|
|
|
4.1 Precompile model files
|
|
--------------------------
|
|
|
|
Long startup times for pioneer this can be alleviated by precompiling all
|
|
models into *.sgm files. This uses the modelcompiler located in src/. From the
|
|
pioneer root directory the following will batch compile all models
|
|
|
|
1. ./src/modelcompiler -b inplace
|