Requirements

Name Version Notes

Qt

5.11.1 or later

QtWebEngine should be buildable with older versions of Qt. Please use the latest version.

boost

Version 1.66

Components: program_options

meson

Version 0.48

ninja

Requirement of meson

python3

Requirement both of meson, and some scripts in tools/

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

In short, the generic cmake build loop of 'cmake, make, make install' will generate a makefile, build the program and install it.

# 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

Configuring smolbote

smolbote uses Kconfig to store and customize default application settings such as keyboard shortcuts and paths. You can edit these settings by running tools/Kconfiglib/menuconfig.py in the repository root.

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

Configuring meson

Run meson configure in the build directory to list available options.

Use meson configure -Doption=value change them. Ninja will regenerate its build file on next run.

See the meson documentation for more information on how to use meson.

Building on Windows

set INSTALL_DIR="C:\projects\smolbote-install"
mkdir %INSTALL_DIR%

mkdir C:\projects\smolbote-build
cd C:\projects\smolbote-build

set QT="C:\Qt\5.11\msvc2017_64"
set BOOST_ROOT="C:\Libraries\boost_1_66_0"
set BOOST_LIBDIR="C:\Libraries\boost_1_66_0\lib64-msvc-14.1"

cmake  -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%
    -DCMAKE_PREFIX_PATH=%QT%;%BOOST_ROOT%
    -DBOOST_ROOT=%BOOST_ROOT% -DBOOST_LIBRARYDIR=%BOOST_LIBDIR% -DBoost_USE_STATIC_LIBS=On
    C:\projects\smolbote

cmake --build . --target poi --config Release
cmake --build . --target install --config Release
cd %INSTALL_DIR%
C:\Qt\5.11\msvc2017_64\bin\windeployqt.exe bin\poi.exe

7z a C:\projects\smolbote\build.7z %INSTALL_DIR%