aboutsummaryrefslogtreecommitdiff
path: root/BUILDING.md
blob: f654f8f1eca61382ceb126ac987c47cc7e6ff3a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
## Before you start

### [Qt](https://www.qt.io/)
An up-to-date version of Qt is required, even though the code, with minor
patches, can work with anything after 5.7.

An up-to-date version of QtWebEngine is highly recommended also due to fixes to
Blink that do _not_ get backported. QtWebEngine can be built with older versions
of Qt.

### [boost](http://www.boost.org/)
Required component: program_options

### cmake
Minimal version 3.1.0, but please use something up-to-date.

### A working compiler with C++17 support
 - gcc 7
 - clang 4 or later
 - only MSVC is supported on Windows due to QtWebEngine

## Compiling
smolbote follows the generic cmake build template:

~~~ sh
# 1. Clone the repository
hg clone https://neueland.iserlohn-fortress.net/smolbote.hg

# 2. Generate Makefile
mkdir release && cd release
cmake -DCMAKE_BUILD_TYPE=Release ../smolbote.hg

# 3. Build
make -j 4

# 4. Install
make install
~~~

### howto --verbose

#### -DCMAKE_BUILD_TYPE
Controls what flags and optimizations are set. Possible values: Debug, Release,
RelWithDebInfo, MinSizeRel

#### -DCMAKE_INSTALL_PREFIX
Sets the install location. Binaries will be written to bin/, and plugins to
lib/smolbote/.

#### Using libc++
You can use libc++ over stdlibc++ by setting UseLibCpp to On. Requires clang.

~~~ sh
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DUseLibCpp=On
~~~