-------------
Of course, for building Quassel you need the usual set of build tools, for
-example a compiler. As we use a subset of the C++11 standard, we require a
-fairly recent compiler:
+example a compiler. The codebase uses the C++14 standard, so a reasonably recent
+compiler is needed:
-- gcc 4.7+ (available for most platforms), or
-- Clang 3.2+ (available for most platforms, or
-- XCode 4.6+ (available for Max OS X and based on Clang), or
-- Visual C++ 2013 (available for Windows™), or
-- any other compiler with decent C++11 support
+- GCC 5.0+ (available for most platforms), or
+- Clang 3.4+ (available for most platforms), or
+- XCode 6.0+ (available for Max OS X and based on Clang), or
+- MSVC 19+ (part of Visual Studio 2017 on Windows™)
-Furthermore, CMake 2.8.9 or later is required.
+Other compilers may work, but are not officially supported.
-As Quassel is a Qt application, you need the Qt SDK, either Qt 4.6+ or Qt 5.2+.
-
-There are several optional dependencies; we will talk about that later.
+As Quassel is a Qt application, you need the Qt SDK, version 5.5 or higher.
+Furthermore, the Boost header-only libraries (at least version 1.54) and
+CMake 3.5 or later are required. CMake will tell you about any missing
+dependencies when configuring the project.
Compiling Quassel - short version
---------------------------------
in a separate build directory rather than in-source. That way, your source
checkout remains pristine, and you can easily remove any build artifacts by just
deleting the build directory. This directory can be located anywhere; in the
-short example above, we just created a directory called "build" inside the
+short example above, we've just created a directory called "build" inside the
source checkout.
From inside the build directory, you can then run the "cmake" command, followed
options here:
-DWANT_(CORE|QTCLIENT|MONO)=(ON|OFF)
- Allow to choose which Quassel binaries to build.
+ Choose which Quassel binaries to build.
--DUSE_QT5=ON
- Build against Qt5 instead of the default Qt4. Note that you should empty
- your build directory when switching between Qt versions, otherwise weird
- things may happen.
+-DUSE_CCACHE=ON
+ Enable ccache if the ccache binary is available. This avoids the need for
+ hacks using PATH or the CXX variable to make ccache work.
+ Distributors may want to disable automatic detection if they have their
+ own caching mechanism set up.
-DWITH_KDE=ON
- Enable integration into KDE4; only available if -DUSE_QT5=OFF
-
--DWITH_OXYGEN=(ON|OFF)
- Install the parts of the Oxygen icon set Quassel uses. Oxygen is the default
- icon set for KDE4, and thus already available on systems where KDE4 is
- installed. By default, WITH_OXYGEN is ON iff WITH_KDE is OFF. If you are
- sure that you have the icon set already installed on your system regardless,
- use this option to disable installing the bundled icons.
+ Enable integration with the KDE Frameworks runtime environment
+
+-DWITH_BUNDLED_ICONS=ON
+ Quassel requires a number of icons that are part of the KDE/Plasma icon themes
+ Breeze and Oxygen, but are generally not supported by other themes. In order
+ to avoid missing icons, Quassel bundles the subset of icons it uses from the
+ afforementioned themes, and uses that as a fallback if the system theme does
+ not provide a required icon.
+ If it is ensured that Breeze and/or Oxygen are installed on your system (e.g.
+ through package dependencies), this option can be turned off to save less
+ than 2 MB of disk space.
+
+-DWITH_OXYGEN_ICONS=(ON|OFF)
+ Support the Oxygen icon theme. Oxygen was the default theme in KDE 4, and
+ also the bundled icon theme in Quassel before version 0.13. Since the move
+ to Qt5, the more modern Breeze icon theme is preferred, and thus Oxygen
+ is disabled by default.
+
+-DWITH_WEBENGINE=ON
+ Use WebEngine for showing previews of webpages linked in the chat. Requires
+ the QtWebEngine module to be available, and increases the client's RAM usage
+ by *a lot* if enabled at runtime. The default is ON.
-DWITH_WEBKIT=OFF
- Use Webkit for showing previews of webpages linked in the chat. Requires
- the QtWebkit module to be available, and increases the client's RAM usage
+ Use WebKit for showing previews of webpages linked in the chat. Requires
+ the QtWebKit module to be available, and increases the client's RAM usage
by *a lot* if enabled at runtime.
+ Note that WebKit support is deprecated and mostly unmaintained in Qt, and
+ should no longer be used for security reasons. The default is OFF.
-DEMBED_DATA=(ON|OFF)
Specifies whether Quassel's data files (icons, translations and so on)