## 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 -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 ~~~