== 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

| link:https://mesonbuild.com/[meson]
| Version 0.48
| Requires python3 and ninja

| link:https://github.com/ulfalizer/Kconfiglib[Kconfiglib]
| Version 10.22.1
| Available on PyPI with 'pip install kconfiglib'

| A 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
[source, sh]
----
# clone the repository
git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git smolbote.git
cd smolbote.git

# These two submodules are required
git submodule init
git submodule update 3rd-party/SingleApplication/SingleApplication.git
git submodule update tools/Kconfiglib

# generate build.ninja
mkdir build
meson build

# make
ninja
----

Run `meson configure` in the build directory to list available options.
For more information on how to use meson, see the meson link:https://mesonbuild.com/Quick-guide.html[quick guide].

=== Configuring smolbote
smolbote uses Kconfig to store and customize default application settings such
as keyboard shortcuts and paths. You can edit these settings using 'menuconfig'
in the repository root.

When building, tools/config.py is used to load `$platform-name/.config` and
generate a header file.

// Compiling on Windows
include::Building/Windows.asciidoc[]

