| .forgejo/workflows | ||
| cmake | ||
| core | ||
| external | ||
| main | ||
| packaging | ||
| plugins | ||
| resources | ||
| shared | ||
| translations | ||
| ui | ||
| .gitmodules | ||
| .uncrustify.cfg | ||
| appveyor.yml | ||
| CHANGELOG.md | ||
| CMakeLists.txt | ||
| LICENSE.md | ||
| README.md | ||
Squawk - a compact XMPP desktop messenger
Prerequisites
- QT 5 or 6
- CMake 3.10 or higher
- qxmpp 1.1.0 or higher
- LMDBAL (my own library 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 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-Debugjust builds showing all warnings,Releasebuilds with no warnings and applies optimizations (default isDebug)SYSTEM_QXMPP-Truetries to link againstqxmppinstalled in the system,Falsebuilds bundledqxmpplibrary (default isTrue)SYSTEM_LMDBAL-Truetries to link againstLMDABLinstalled in the system,Falsebuilds bundledLMDBALlibrary (default isTrue)WITH_KWALLET-Truebuilds theKWalletcapability module ifKWalletis installed and if not goes toFalse.FalsedisablesKWalletsupport (default isTrue)WITH_KIO-Truebuilds theKIOcapability module ifKIOis installed and if not goes toFalse.FalsedisablesKIOsupport (default isTrue)WITH_KCONFIG-Truebuilds theKConfigandKConfigWidgetscapability module if such packages are installed and if not goes toFalse.FalsedisablesKConfigandKConfigWidgetssupport (default isTrue)WITH_OMEMO-Truebuilds the OMEMO encryption, requiresqxmppof version >= 1.5.0 built with OMEMO support.Falsedisables OMEMO support (default isFalse)QT_VERSION_MAJOR-6builds against Qt 6,5builds against Qt 6, corresponding version of lmdbal and qxmpp should be installed (default is6)
License
This project is licensed under the GPLv3 License - see the LICENSE.md file for details
