Qt The information in this section applies to Qt 5.5 and later. Qt is an application development toolkit for C++. Although it is not a distinct programming language, there are special considerations for packaging Qt-based programs and libraries. A small set of tools and conventions has grown out of these considerations.
Libraries Packages that provide libraries should be listed in qt5LibsFun so that the library is built with each Qt version. A set of packages is provided for each version of Qt; for example, qt5Libs always provides libraries built with the latest version, qt55Libs provides libraries built with Qt 5.5, and so on. To avoid version conflicts, no top-level attributes are created for these packages.
Programs Application packages do not need to be built with every Qt version. To ensure consistency between the package's dependencies, call the package with qt5Libs.callPackage instead of the usual callPackage. An older version may be selected in case of incompatibility. For example, to build with Qt 5.5, call the package with qt55Libs.callPackage. Several environment variables must be set at runtime for Qt applications to function correctly, including: QT_PLUGIN_PATH QML_IMPORT_PATH QML2_IMPORT_PATH XDG_DATA_DIRS To ensure that these are set correctly, the program must be wrapped by invoking wrapQtProgram program during installation (for example, during fixupPhase). wrapQtProgram accepts the same options as makeWrapper.
KDE Many of the considerations above also apply to KDE packages, especially the need to set the correct environment variables at runtime. To ensure that this is done, invoke wrapKDEProgram program during installation. wrapKDEProgram also generates a ksycoca database so that required data and services can be found. Like its Qt counterpart, wrapKDEProgram accepts the same options as makeWrapper.