## Building from source ### Dependencies - [Qt](https://www.qt.io/) - [meson](https://mesonbuild.com/) 0.52.0 or later - [kconfiglib](https://github.com/ulfalizer/Kconfiglib/) - A compiler with C++17 support - spdlog: if not found can be downloaded by meson ### Optional dependencies - openssl or libressl: for signing plugins - breakpad-client - gtest ### Steps ``` # clone the repository git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git smolbote.git cd smolbote.git # Get the submodules git submodule init git submodule update # configure mkdir build meson build # make ninja ``` ## Using meson ### Listing build options ``` build% meson configure ``` ### Changing build options ``` build% meson configure -D= ``` ### Prevent meson from downloading wraps During configure, meson can download missing dependencies on its own using wraps. To disable this, pass '--wrap-mode=nodownload' during the configure phase: ``` repo% meson --wrap-mode=nodownload build-path ``` For more information on how to use meson, see the meson [quick quide](https://mesonbuild.com/Quick-guide.html). ## Configuring builds smolbote uses Kconfig to store and customize features and default settings such as keyboard shortcuts and paths. You can edit these settings using `menuconfig` from kconfiglib or similar.