2020-01-02 14:18:03 +00:00
# Squawk - a compact XMPP desktop messenger
2019-08-14 14:54:46 +00:00
2020-01-02 14:18:03 +00:00
[![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/)
2020-01-02 14:22:51 +00:00
[![Liberapay patrons ](https://img.shields.io/liberapay/patrons/macaw.me?logo=liberapay&style=flat-square )](https://liberapay.com/macaw.me)
2020-01-02 14:18:03 +00:00
2022-05-05 17:46:49 +00:00
![Squawk screenshot ](https://macaw.me/images/squawk/0.2.2.png )
2019-08-14 14:54:46 +00:00
### Prerequisites
- QT 5.12 *(lower versions might work but it wasn't tested)*
2022-01-11 20:50:42 +00:00
- CMake 3.4 or higher
2019-11-15 13:30:29 +00:00
- qxmpp 1.1.0 or higher
2023-03-27 18:45:29 +00:00
- LMDBAL (my own [library ](https://git.macaw.me/blue/lmdbal ) around lmdb)
2021-05-08 23:12:17 +00:00
- KDE Frameworks: kwallet (optional)
- KDE Frameworks: KIO (optional)
2022-01-27 17:44:32 +00:00
- KDE Frameworks: KConfig (optional)
- KDE Frameworks: KConfigWidgets (optional)
2022-01-11 20:50:42 +00:00
- Boost (just one little hpp from there)
- Imagemagick (for compilation, to rasterize an SVG logo)
2019-11-15 13:30:29 +00:00
### 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
```
2019-08-14 14:54:46 +00:00
### Building
2019-11-15 13:30:29 +00:00
You can also clone the repo and build it from source
2019-08-14 14:54:46 +00:00
Squawk requires Qt with SSL enabled. It uses CMake as build system.
2021-10-05 16:53:50 +00:00
Please check the prerequisites and install them before installation.
#### For Windows (Mingw-w64) build
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:
```
cmake .. -D LMDB_ROOT_DIR:PATH=< Msys2 Mingw64 Root Directory > -D BOOST_ROOT:PATH=< Msys2 Mingw64 Root Directory >
```
`<Msys2 Mingw64 Root Directory>` : e.g. `C:/msys64/mingw64` .
---
2019-11-15 13:30:29 +00:00
There are two ways to build, it depends whether you have qxmpp installed in your system
#### Building with system qxmpp
Here is what you do
2019-08-14 15:00:51 +00:00
```
2019-11-15 13:30:29 +00:00
$ git clone https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
2021-10-05 16:53:50 +00:00
$ cmake .. [-D LMDB_ROOT_DIR:PATH=...] [-D BOOST_ROOT:PATH=...]
2019-11-15 13:30:29 +00:00
$ cmake --build .
2019-08-14 15:00:51 +00:00
```
2019-11-15 13:30:29 +00:00
#### Building with bundled qxmpp
Here is what you do
2019-08-14 14:54:46 +00:00
```
2019-11-15 13:30:29 +00:00
$ git clone --recurse-submodules https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
2021-10-05 16:53:50 +00:00
$ cmake .. -D SYSTEM_QXMPP=False [-D LMDB_ROOT_DIR:PATH=...] [-D BOOST_ROOT:PATH=...]
2019-11-15 13:30:29 +00:00
$ cmake --build .
2019-08-14 14:54:46 +00:00
```
2021-10-05 16:53:50 +00:00
You can always refer to `appveyor.yml` to see how AppVeyor build squawk.
2020-04-10 22:15:08 +00:00
### 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` )
2023-03-27 18:45:29 +00:00
- `SYSTEM_LMDBAL` - `True` tries to link against `LMDABL` installed in the system, `False` builds bundled `LMDBAL` library (default is `True` )
2020-04-10 22:15:08 +00:00
- `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` )
2021-05-06 14:44:43 +00:00
- `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` )
2022-01-27 17:44:32 +00:00
- `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` )
2023-03-27 18:45:29 +00:00
- `WITH_OMEMO` - `True` builds the OMEMO encryption, requires `qxmpp` of version >= 1.5.0 built with OMEMO support. `False` disables OMEMO support (default is `True` )
2020-04-10 22:15:08 +00:00
2019-08-14 14:54:46 +00:00
## License
This project is licensed under the GPLv3 License - see the [LICENSE.md ](LICENSE.md ) file for details