# Squawk - a compact XMPP desktop messenger [![AUR license](https://img.shields.io/aur/license/squawk?style=flat-square)](https://git.macaw.me/blue/squawk/raw/branch/master/LICENSE.md) [![AUR version](https://img.shields.io/aur/version/squawk?style=flat-square)](https://aur.archlinux.org/packages/squawk/) [![Liberapay patrons](https://img.shields.io/liberapay/patrons/macaw.me?logo=liberapay&style=flat-square)](https://liberapay.com/macaw.me) ![Squawk screenshot](https://macaw.me/images/squawk/0.2.2.png) ### Prerequisites - QT 5.12 *(lower versions might work but it wasn't tested)* - CMake 3.4 or higher - qxmpp 1.1.0 or higher - LMDBAL (my own [library](https://git.macaw.me/blue/lmdbal) for lmdb) - KDE Frameworks: kwallet (optional) - KDE Frameworks: KIO (optional) - KDE Frameworks: KConfig (optional) - KDE Frameworks: KConfigWidgets (optional) - Boost (just one little hpp from there) - Imagemagick (for compilation, to rasterize an SVG logo) ### Getting The easiest way to get the Squawk is to install it from AUR (if you use Archlinux like distribution) Here is the [link](https://aur.archlinux.org/packages/squawk/) for the AUR package You can also install it from console if you use some AUR wrapper. Here what it's going to look like with *pacaur* ``` $ pacaur -S squawk ``` ### Building You can also the repo and build it from source Squawk requires Qt with SSL enabled. It uses CMake as build system. Please check the prerequisites and install them before installation. --- There are several ways to build Squawk. The one you need depends on whether you have `qxmpp` and `lmdbal` installed in your system. #### Building with system dependencies This is the easiest way but it requires you to have `qxmpp` and `lmdbal` installed as system packages. Here is what you do: ``` $ git clone https://git.macaw.me/blue/squawk $ cd squawk $ mkdir build $ cd build $ cmake .. $ cmake --build . ``` #### Building with bundled qxmpp If you don't have any of `qxmpp` or `lmdbal` (or both) installed the process is abit mor complicated. On the configuration stage you need to enable one or both entries in the square brackets, depending on what package your system lacks. Here is what you do ``` $ git clone --recurse-submodules https://git.macaw.me/blue/squawk $ cd squawk $ mkdir build $ cd build $ cmake .. [-D SYSTEM_QXMPP=False] [-D SYSTEM_LMDBAL=False] $ cmake --build . ``` #### For Windows (Mingw-w64) build **Building for windows is not mainteined, but was possible in the past, you can try, but it probably won't work** You need Qt for mingw64 (MinGW 64-bit) platform when installing Qt. The best way to acquire library `lmdb` and `boost` is through Msys2. First install Msys2, and then install `mingw-w64-x86_64-lmdb` and `mingw-w64-x86_64-boost` by pacman. Then you need to provide the cmake cache entry when calling cmake for configuration: ``: e.g. `C:/msys64/mingw64`. ``` $ git clone --recurse-submodules https://git.macaw.me/blue/squawk $ cd squawk $ mkdir build $ cd build $ cmake .. -D SYSTEM_QXMPP=False -D SYSTEM_LMDBAL=False -D LMDB_ROOT_DIR:PATH= -D BOOST_ROOT:PATH= $ cmake --build . ``` You can always refer to `appveyor.yml` to see how AppVeyor build squawk for windows. ### List of keys Here is the list of keys you can pass to configuration phase of `cmake ..`: - `CMAKE_BUILD_TYPE` - `Debug` just builds showing all warnings, `Release` builds with no warnings and applies optimizations (default is `Debug`) - `SYSTEM_QXMPP` - `True` tries to link against `qxmpp` installed in the system, `False` builds bundled `qxmpp` library (default is `True`) - `SYSTEM_LMDBAL` - `True` tries to link against `LMDABL` installed in the system, `False` builds bundled `LMDBAL` library (default is `True`) - `WITH_KWALLET` - `True` builds the `KWallet` capability module if `KWallet` is installed and if not goes to `False`. `False` disables `KWallet` support (default is `True`) - `WITH_KIO` - `True` builds the `KIO` capability module if `KIO` is installed and if not goes to `False`. `False` disables `KIO` support (default is `True`) - `WITH_KCONFIG` - `True` builds the `KConfig` and `KConfigWidgets` capability module if such packages are installed and if not goes to `False`. `False` disables `KConfig` and `KConfigWidgets` support (default is `True`) - `WITH_OMEMO` - `True` builds the OMEMO encryption, requires `qxmpp` of version >= 1.5.0 built with OMEMO support. `False` disables OMEMO support (default is `False`) ## License This project is licensed under the GPLv3 License - see the [LICENSE.md](LICENSE.md) file for details