forked from blue/squawk
116 lines
4.7 KiB
Markdown
116 lines
4.7 KiB
Markdown
# 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/projects/squawk/0.2.2.png)
|
|
|
|
### Prerequisites
|
|
|
|
- QT 5 or 6
|
|
- CMake 3.10 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:
|
|
|
|
`<Msys2 Mingw64 Root Directory>`: 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=<Msys2 Mingw64 Root Directory> -D BOOST_ROOT:PATH=<Msys2 Mingw64 Root Directory>
|
|
$ 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`)
|
|
- `QT_VERSION_MAJOR` - `6` builds against Qt 6, `5` builds against Qt 6, corresponding version of lmdbal and qxmpp should be installed. By default it picks your system default Qt
|
|
|
|
## License
|
|
|
|
This project is licensed under the GPLv3 License - see the [LICENSE.md](LICENSE.md) file for details
|