pioneer/COMPILING.txt

269 lines
7.9 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 Windows - CMake and MSVC
1.5 OS X - Homebrew
1.6 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 4.9+ or Clang 6+
Windows: Microsoft Visual C++ 2019 (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. This is intended for Windows
builds and is otherwise not actively maintained. Read the section below for
details on using it for your platform.
If you're having trouble compiling, please ask in #pioneer on
irc.libera.chat. 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/vc2019/pioneer.sln.
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 Windows - CMake and 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 Visual Sudio 2019 and do not open a solution or project ('Continue without code').
3. Go to File->Open->CMake and select pioneer/CMakeLists.txt
4. Select the appropriate build type (x64-Debug or x64-Release) under the configuration
drop down on the main toolbar, located next to the run button.
5. Build the project (Build->Build All).
6. Pioneer can be run and debugged by selecting 'pioneer.exe' on the
'Select Startup Item' menu (click the small down arrow on the run button), and then clicking run.
Be sure to select 'pioneer.exe' and not 'pioneer.exe (install)'.
1.5 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 pioneer
If you want master branch from GitHub, add '--HEAD' option.
brew install --HEAD pioneer
1.6 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' inside the pioneer
repository 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 without a target 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, invoked through CMake.
From the pioneer root directory the following will batch compile all models:
1. make -C build/ build-data