blob: 51fb333629263c5fadadda11d5c5b40415c76084 (
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
## Requirements
### [Qt](https://www.qt.io/)
- Version 5.11
Even though most of the browser might work with the last LTS Qt release, always
use an up-to-date version of QtWebEngine. Security fixes to Blink do _not_ get
backported. QtWebEngine can be built with older versions of Qt, if upgrading Qt
is not a possibility.
### [boost](http://www.boost.org/)
- Version 1.66
- Components: program_options
### cmake
- Version 3.10
### Compiler
- C++17 support
- gcc 7+; clang 4+
- Windows: only MSVC is supported due to QtWebEngine
## Basic Installation
In short, the generic cmake build loop of 'cmake, make, make install' will
generate a makefile, build the program and install it.
~~~ sh
# clone the repository
git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git
# generate makefile
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../smolbote
# make && make install
make -j4
make install
~~~
## Configuring
### vendor.cmake
vendor.cmake contains all settings but the build type. It can be used to easily
create a build profile.
When changing vendor.cmake, make sure to have all values defined in the preset.
### Compiler flags
cmake does not set any C++ flags by default, including no optimization flags.
You need to set these yourself if your build system doesn't set any either.
On gcc/clang, no optimize flags are set by default, resulting in rather bloated
code being generated. Recommend setting at least -O2. MSVC has optimze flags
set by default.
You can set the compiler using
~~~sh
-DCMAKE_CXX_COMPILER=/path/to/c++
~~~
You can set additional compiler flags using -DCMAKE_CXX_FLAGS.
### Build type
Install paths are only set on Release builds.
~~~sh
-DCMAKE_BUILD_TYPE=Debug|Release
~~~
### Install prefix
Sets the install location prefix.
win32: Binary is written to bin/, and plugins to bin/plugins.
others: Binary will be written to bin/, and plugins to lib/smolbote/.
~~~sh
-DCMAKE_INSTALL_PREFIX=/usr/local
~~~
### Using libc++
You can use libc++ over stdlibc++ by setting UseLibCpp to On. Requires clang.
~~~ sh
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DUseLibCpp=On
~~~
|