aboutsummaryrefslogtreecommitdiff
path: root/BUILDING.md
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-07-29 14:08:27 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-07-29 14:08:27 +0200
commit9c47ceeef79caa02c5ee810659d8f784676b3f71 (patch)
tree97282bbdc20b844cd7ca63cdb82af67ba1dc5098 /BUILDING.md
parentUrlRequestInterceptor: add filter rules (diff)
downloadsmolbote-9c47ceeef79caa02c5ee810659d8f784676b3f71.tar.xz
Update build instructions
Diffstat (limited to 'BUILDING.md')
-rw-r--r--BUILDING.md62
1 files changed, 36 insertions, 26 deletions
diff --git a/BUILDING.md b/BUILDING.md
index 50ca3ea..51fb333 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -1,17 +1,22 @@
## Requirements
-### [Qt](https://www.qt.io/) 5.11
+### [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/) program_options
+### [boost](http://www.boost.org/)
+ - Version 1.66
+ - Components: program_options
-### cmake 3.10
+### cmake
+ - Version 3.10
-### Compiler with C++17 support
+### Compiler
+ - C++17 support
- gcc 7+; clang 4+
- Windows: only MSVC is supported due to QtWebEngine
@@ -21,18 +26,26 @@ generate a makefile, build the program and install it.
~~~ sh
# clone the repository
-hg clone https://neueland.iserlohn-fortress.net/smolbote.hg
+git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git
# generate makefile
mkdir build && cd build
-cmake -DCMAKE_CXX_FLAGS="-O2 [other cxx flags]" -DCMAKE_BUILD_TYPE=Release ../smolbote.hg
+cmake -DCMAKE_BUILD_TYPE=Release ../smolbote
# make && make install
make -j4
make install
~~~
-### -DCMAKE_CXX_FLAGS
+## 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.
@@ -40,14 +53,28 @@ 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.
-### -DCMAKE_BUILD_TYPE
+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.
-### -DCMAKE_INSTALL_PREFIX
+~~~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.
@@ -55,20 +82,3 @@ You can use libc++ over stdlibc++ by setting UseLibCpp to On. Requires clang.
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DUseLibCpp=On
~~~
-### Verifying source code integrity
-Since mercurial doesn't have any method for signing commits, some commits have
-signed sha512 checksums available.
-
-~~~ sh
-# get node for the current commit
-node="$(hg log -r tip --template='{node}')"
-
-# get sha512 checksums and signature
-curl -O https://neueland.iserlohn-fortress.net/smolbote/integrity/$node
-curl -O https://neueland.iserlohn-fortress.net/smolbote/integrity/$node.sig
-
-# verify signature and files
-gpg --verify $node.sig
-sha512sum --check --quiet $node
-~~~
-