Skip to content

Commit

Permalink
Readme changes
Browse files Browse the repository at this point in the history
  • Loading branch information
lnjX committed Feb 5, 2024
1 parent 3d8a7ee commit dd11c5e
Showing 1 changed file with 32 additions and 24 deletions.
56 changes: 32 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SPDX-FileCopyrightText: 2009 Manjeet Dahiya <[email protected]>
SPDX-License-Identifier: CC0-1.0
-->

# QXmpp - Cross-platform Qt/C++ XMPP library
# QXmpp - Cross-platform C++/Qt XMPP library

<h1 align="center">
<picture>
Expand Down Expand Up @@ -40,26 +40,28 @@ SPDX-License-Identifier: CC0-1.0
</a>
</p>

## About
QXmpp is a cross-platform C++ XMPP client and server library. It is written
in C++ and uses the Qt framework.

QXmpp is a cross-platform C++ XMPP client and server library. It is written in C++ and uses the Qt framework.

QXmpp strives to be as easy to use as possible. The underlying TCP socket, the core XMPP RFCs (RFC6120 and RFC6121) and the [supported XMPP extensions][xeps] have been nicely encapsulated in classes.
With QXmpp, it is possible to build XMPP clients complying with the [XMPP Compliance Suites 2022][xmpp-compliance] for IM and Advanced Mobile.
QXmpp strives to be as easy to use as possible. The underlying TCP socket, the core XMPP RFCs
(RFC6120 and RFC6121) and the [supported XMPP extensions][xeps] have been nicely encapsulated in
classes.
With QXmpp, it is possible to build XMPP clients complying with the
[XMPP Compliance Suites 2022][xmpp-compliance] for IM and Advanced Mobile.
It comes with full API documentation, automatic tests and examples.

QXmpp uses Qt extensively.
Thus, users need to have a good knowledge of C++ and Qt basics (inlcuding the concept of signals/slots and Qt's data types).
Qt is the only third party library required to build QXmpp.
But libraries such as GStreamer enable additional features.
QXmpp uses Qt extensively. Thus, users need to have a good knowledge of C++ and Qt basics
(including the concept of signals/slots and Qt's data types).
Qt is the only third party library required to build QXmpp, but libraries such as GStreamer enable
additional features.

QXmpp is released under the terms of the GNU Lesser General Public License, version 2.1 or later.

## Building

QXmpp requires **Qt 5.15 or Qt 6.0 or higher** with SSL enabled.
QXmpp requires **Qt 5.15** or **Qt 6.0 or higher** with SSL enabled.

You can build QXmpp via CMake:
You can build QXmpp with CMake:
```
mkdir build
cd build
Expand All @@ -69,20 +71,25 @@ cmake --build .

You can pass the following arguments to CMake:

Argument | Description
--|--
`-DBUILD_SHARED=ON` | Build with shared type library, otherwise static (default: `ON`)
`-DBUILD_DOCUMENTATION=ON` | Build documentation, requires Doxygen (default: `OFF`)
`-DBUILD_EXAMPLES=ON` | Build examples (default: `ON`)
`-DBUILD_TESTS=ON` | Build unit tests (default: `ON`)
`-DBUILD_INTERNAL_TESTS=ON` | Build unit tests testing private parts of the API (default: `OFF`)
`-DBUILD_OMEMO=ON` | Build [OMEMO module][omemo] (default: `OFF`)
`-DWITH_GSTREAMER=ON` | Enable audio/video over Jingle (default: `OFF`)
`-DQT_VERSION_MAJOR=5/6` | to build with a specific Qt major version (default: `6`)
Option | Default | Description
---|---|---
`BUILD_SHARED` | `ON` | Build as shared library, otherwise static
`BUILD_DOCUMENTATION` | `ON` | Build documentation, requires Doxygen
`BUILD_EXAMPLES` | `ON` | Build examples
`BUILD_TESTS` | `ON` | Build unit tests
`BUILD_INTERNAL_TESTS` | `OFF` | Build unit tests testing private parts of the API
`BUILD_OMEMO` | `OFF` | Build the [OMEMO module][omemo]
`WITH_GSTREAMER` | `OFF` | Enable audio/video over Jingle
`QT_VERSION_MAJOR=5/6` | `` | to build with a specific Qt major version, prefers Qt 6 if undefined

For example, to build without unit tests you could do:
```
cmake .. -DBUILD_TESTS=OFF
```

## Installing

After building QXmpp, you can install the headers, libraries and documentation using the following command:
After building QXmpp, you can install it using the following command:
```
cmake --build . --target install
```
Expand All @@ -103,7 +110,8 @@ The example helps to understand how to receive and send messages.

## Documentation

There is an API documentation for the [latest stable QXmpp version][qxmpp-documentation] and one for the [master branch][qxmpp-master-documentation].
There is an API documentation for the [latest stable QXmpp version][qxmpp-documentation] and one
for the [master branch][qxmpp-master-documentation].

## Supported Platforms

Expand Down

0 comments on commit dd11c5e

Please sign in to comment.