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
2024-10-06 16:29:38 +00:00
![Squawk screenshot ](https://macaw.me/projects/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
2024-02-04 16:36:51 +00:00
- LMDBAL (my own [library ](https://git.macaw.me/blue/lmdbal ) for 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
2024-02-04 16:36:51 +00:00
You can also the repo and build it from source
2019-11-15 13:30:29 +00:00
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.
2024-02-04 16:36:51 +00:00
---
2021-10-05 16:53:50 +00:00
2024-02-04 16:36:51 +00:00
There are several ways to build Squawk. The one you need depends on whether you have `qxmpp` and `lmdbal` installed in your system.
2021-10-05 16:53:50 +00:00
2024-02-04 16:36:51 +00:00
#### Building with system dependencies
2021-10-05 16:53:50 +00:00
2024-02-04 16:36:51 +00:00
This is the easiest way but it requires you to have `qxmpp` and `lmdbal` installed as system packages. Here is what you do:
2021-10-05 16:53:50 +00:00
```
2024-02-04 16:36:51 +00:00
$ git clone https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
2021-10-05 16:53:50 +00:00
```
2024-02-04 16:36:51 +00:00
#### Building with bundled qxmpp
2019-11-15 13:30:29 +00:00
2024-02-04 16:36:51 +00:00
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.
2019-11-15 13:30:29 +00:00
Here is what you do
2019-08-14 15:00:51 +00:00
```
2024-02-04 16:36:51 +00:00
$ git clone --recurse-submodules https://git.macaw.me/blue/squawk
2019-11-15 13:30:29 +00:00
$ cd squawk
$ mkdir build
$ cd build
2024-02-04 16:36:51 +00:00
$ cmake .. [-D SYSTEM_QXMPP=False] [-D SYSTEM_LMDBAL=False]
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
2024-02-04 16:36:51 +00:00
#### For Windows (Mingw-w64) build
2019-11-15 13:30:29 +00:00
2024-02-04 16:36:51 +00:00
**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` .
2019-11-15 13:30:29 +00:00
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
2024-02-04 16:36:51 +00:00
$ 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 >
2019-11-15 13:30:29 +00:00
$ cmake --build .
2019-08-14 14:54:46 +00:00
```
2024-02-04 16:36:51 +00:00
You can always refer to `appveyor.yml` to see how AppVeyor build squawk for windows.
2021-10-05 16:53:50 +00:00
2020-04-10 22:15:08 +00:00
### List of keys
2024-02-04 16:36:51 +00:00
Here is the list of keys you can pass to configuration phase of `cmake ..` :
2020-04-10 22:15:08 +00:00
- `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` )
2024-02-04 16:36:51 +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 `False` )
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