Updated installer output name to match historic name.
[TreadMarks.git] / BUILD.txt
1 WINDOWS
2 =======
3
4 Requirements
5 ------------
6 Visual Studio 2015 (VC14):      https://www.visualstudio.com/downloads/
7 CMake:                          https://cmake.org/download/
8 Qt5:                            https://www.qt.io/download-open-source/
9 SFML:                           https://www.sfml-dev.org/download.php
10 GLEW:                           http://glew.sourceforge.net/
11 Zlib:                           http://gnuwin32.sourceforge.net/packages/zlib.htm
12
13 When given the option, all libraries should be the 32-bit version. Zlib comes
14 either in an installer, or in zips. If you download the zips, you need to
15 decompress both the binaries and developer files into the same location.
16
17 Fixing Zlib
18 -----------
19 The Zlib build for Windows has a long-standing bug here:
20
21 https://sourceforge.net/p/gnuwin32/bugs/169/
22
23 To get it to compile properly, you'll need to edit include/zconf.h and change
24 the:
25
26 #if 1 /* HAVE_UNISTD_H
27
28 line to:
29
30 #ifdef HAVE_UNISTD_H
31
32 Cmake settings
33 --------------
34 Open the CMake GUI, set the source code directory to the folder containing this 
35 file, set the build directory to wherevery you like (I put a 'build' directory 
36 within the Tread Marks root folder) and press 'Configure'.
37
38 Set the compiler to Siausl Studio 2015, set the toolset to v140_xp, and press 
39 'Finish'.
40
41 It will fail to locate a bunch of libraries. Setting these values to the
42 appropriate root directories will help CMake find them:
43 * PATH_GLEW  (eg: D:\3rdParty\glew-2.0.0)
44 * PATH_QT    (eg: C:\Qt\5.7\msvc2015) (optional)
45 * PATH_SFML  (eg: D:\3rdParty\SFML-2.4.1)
46 * PATH_ZLIB  (eg: D:\3rdParty\zlib-1.2.3)
47 * PATH_UCRT  (eg: C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86) (optional)
48
49 Now when you click 'Configure' again, it should succeed with the message
50 "Configuring done". Now you can click the 'Generate' button. This will create a
51 'TreadMarks.sln' file in your build directory which you can open with Visual
52 Studio.
53
54 There's a couple projects in this solution:
55 * TM: This is the actual game.
56 * TreadMarks: This is the launcher.
57
58 There's some additional targets that are useful:
59 * FIXUP: This will copy all the necessary dependencies in order for you to run
60          the project from Visual Studio. Just make sure you set the debugging
61          working directory to the "Resources" directory and you're all set to
62          debug.
63 * INSTALL: This will attempt to install all the necessary files to play the
64            game into the final location. By default, it will be in the
65            "Program Files (x86)" folder, so you'll either need to run Visual
66            Studio as an administrator for this target to work, or change the
67            CMAKE_INSTALL_PREFIX variable in CMake.
68 * PACKAGE: If you have NSIS installed, this will create an installer.
69 * SIGN: If you have a digital certificate, and you set the CERT and CERT_PASS
70         variables in CMake, this will sign your installer.
71
72 OS X
73 ====
74 Builds and launches, but currently there's a bug that makes all the textures magenta.
75
76 To get zlib and GLEW, the easiest way is with home-brew.
77
78 You can get Homebrew by running the following command on the command line:
79
80 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
81
82 And then to install the libraries, run:
83
84 brew install glew
85 brew install lzlib
86
87 From here you can use cmake-gui as in the Windows build.
88
89 Linux
90 =====
91 I've ony tried to build a headless server so far. It might work, but so far
92 I've only tested the build with g++ 4.8, which crashes on startup because they
93 didn't fully implement c++ regular expression until 4.9.
94
95 To do that, you only need Zlib, and of course cmake and a compiler.
96 On Ubuntu, here's how you get your packages:
97
98 sudo apt-get install build-essential cmake zlib1g-dev
99
100 Or on RedHat it's:
101
102 sudo yum install gcc-g++ cmake zlib
103
104 Once you have all the pre-requisites, you can create the build script and build
105 it with:
106
107 mkdir build
108 cd build
109 cmake -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-std=c++11" -DBUILD_HEADLESS=true ..
110 make
111 make install
112
113 Once everything is built, it should be copied into the 'out' directory.
114