diff options
Diffstat (limited to 'doc/Building.asciidoc')
-rw-r--r-- | doc/Building.asciidoc | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/doc/Building.asciidoc b/doc/Building.asciidoc new file mode 100644 index 0000000..47eb0bb --- /dev/null +++ b/doc/Building.asciidoc @@ -0,0 +1,81 @@ +== Requirements + +[cols="1,1,3"] +|=== +|Name |Version |Notes + +| link:https://www.qt.io/[Qt] +| 5.11.1 or later +| QtWebEngine should be buildable with older versions of Qt. Please use the + latest version. + +| link:http://www.boost.org/[boost] +| Version 1.66 +| Components: program_options + +| cmake +| Version 3.10 +| Anything supporting modern cmake + +| Compiler +| C++17 support +| gcc 7+; clang 4+; on Windows only MSVC is supported due to QtWebEngine + +| asciidoc +| +| Only for building manpage + +|=== + +== Building from source +In short, the generic cmake build loop of 'cmake, make, make install' will +generate a makefile, build the program and install it. + +[source, sh] +---- +# clone the repository +git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git smolbote.git +cd smolbote.git +git submodule init +git submodule update 3rd-party/SingleApplication/SingleApplication.git + + +# generate makefile +mkdir build && cd build +cmake -DCMAKE_BUILD_TYPE=Release .. + +# make && make install +make -j4 +make install +---- + +=== vendor.cmake +vendor.cmake contains various settings to customize the way in which the program +functions. The available options and their values may change with revisions. +When changing vendor.cmake, make sure to have all values defined in the preset. + + -DVENDOR=path/to/custom-vendor.cmake + +=== 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, setting at least -O2 is +recommended; check vendor.cmake. + +=== Install prefix (`-DCMAKE_INSTALL_PREFIX`) +Sets the install location prefix. Install targets are only set on Release builds. + +- windows: Binary is written to bin/, and plugins to bin/plugins. +- others: Binary 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. + + -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DUseLibCpp=On + +// Additional items + +include::Building/Breakpad.asciidoc[] + +include::Building/Windows.asciidoc[] |