diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-01-12 17:05:25 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-01-12 17:05:25 +0200 |
commit | d8cc3eeeb55b92b0d7fe9a325937df11c28fbcaa (patch) | |
tree | b21f65bb973745eef52aacb24e5295c4451f2ef0 /doc/building.md | |
parent | Refactor WebViewContextMenu (diff) | |
download | smolbote-d8cc3eeeb55b92b0d7fe9a325937df11c28fbcaa.tar.xz |
Update doc/ and move various entries to wiki
Diffstat (limited to 'doc/building.md')
-rw-r--r-- | doc/building.md | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/building.md b/doc/building.md new file mode 100644 index 0000000..9ea9344 --- /dev/null +++ b/doc/building.md @@ -0,0 +1,59 @@ +## 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<option-name>=<enabled|disabled> +``` + +### 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. + |