Документация
ОС Аврора 5.1.1

Подключение зависимостей

В данном разделе представлена информация о подключении библиотек и модулей Qt и QML из списка публичных API, включающая подключение необходимых зависимостей в .spec-файлы и подключение модулей и библиотек для систем сборки qmake и cmake. Также описаны необходимые разрешения в .desktop-файле и импорт функционала зависимостей в C++/QML-код при необходимости.

На данный момент в списках ниже представлены не все зависимости, их список будет пополняться.

Содержание:

C++ зависимости

С++ API

C++ API Зависимость для С++ в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Импорт в C++ код
AmberPDF BuildRequires: pkgconfig(amberpdf) CONFIG += link_pkgconfig
PKGCONFIG += amberpdf
- - Для разных классов импорт отличается.
Полный список классов AmberPDF можно найти здесь
Libauroraapp BuildRequires: pkgconfig(auroraapp) TARGET = <orgname>.<appname>
CONFIG += link_pkgconfig
PKGCONFIG += auroraapp
include(FindPkgConfig) pkg_search_module(AURORA auroraapp REQUIRED) - #include <auroraapp.h>
Notifications BuildRequires: pkgconfig(nemonotifications-qt5) CONFIG += link_pkgconfig
PKGCONFIG += nemonotifications-qt5 \
Подключить Qt D-Bus
find_package(PkgConfig REQUIRED)
pkg_search_module(NEMONOTIFICATIONS nemonotifications-qt5 REQUIRED)
target_include_directories(${PROJECT_NAME} PRIVATE
$<BUILD_INTERFACE: ${AURORA_INCLUDE_DIRS} ${NEMONOTIFICATIONS_INCLUDE_DIRS}>)
target_link_libraries(${PROJECT_NAME} PRIVATE ${NEMONOTIFICATIONS_LIBRARIES} ${AURORA_LDFLAGS})
- #include <notification.h>
Push Notifications BuildRequires: pkgconfig(pushclient) >= 2.0.0 CONFIG += libauroraapp link_pkgconfig
PKGCONFIG += pushclient
- PushNotifications #include <push_client.h>
MDM API,
MDM Policy
Provides: mdm-client
Conflicts: mdm-client
CONFIG += link_pkgconfig
PKGCONFIG += sailfishpolicy sailfishmdm
- - Для разных классов импорт отличается.
Полный список классов MDM API можно найти здесь, для MDM Policy — тут.
QCA BuildRequires: pkgconfig(qca2-qt5) - pkg_check_modules(Qca2Qt5 qca2-qt5 IMPORTED_TARGET)
target_link_libraries(${PROJECT_NAME} PkgConfig::Qca2Qt5 ${AURORA_LDFLAGS})
- #include <QtCrypto>
WebView - Автоматически подключается при подключении libauroraapp
или с помощью CONFIG += link_pkgconfig
Автоматически подключается при подключении libauroraapp
или с помощью CONFIG += link_pkgconfig
Internet #include <WebEngine>
#include <WebEngineSettings>

C++ Модули Qt

C++ API Зависимость для С++ в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Импорт в C++ код
Qt Concurrent BuildRequires: pkgconfig(Qt5Concurrent) QT += concurrent find_package(Qt5 COMPONENTS Concurrent REQUIRED)
target_link_libraries(TargetName Qt5::Concurrent ${AURORA_LDFLAGS})
- -
Qt Core BuildRequires: pkgconfig(Qt5Core) Подключается по умолчанию find_package (Qt5 COMPONENTS Core REQUIRED) - -
Qt D-Bus BuildRequires: pkgconfig(Qt5DBus) QT +=dbus find_package (Qt5 COMPONENTS DBus REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::DBus ${AURORA_LDFLAGS})
- -
Qt Gui BuildRequires: pkgconfig(Qt5Gui) Подключается по умолчанию find_package (Qt5 COMPONENTS Gui REQUIRED) target_link_libraries( TargetName Qt5::Gui ${AURORA_LDFLAGS}) - -
Qt Positioning Requires: qt5-qtpositioning
Requires: qt5-qtdeclarative-import-positioning
QT += positioning find_package (Qt5 COMPONENTS Positioning REQUIRED)
target_link_libraries(TargetName Qt5::Positioning ${AURORA_LDFLAGS})
Location #include <QgeoCoordinate> и др.
Qt Location BuildRequires: pkgconfig(Qt5Location), а также зависимости Qt Positioning QT += positioning location find_package(Qt5 COMPONENTS Location REQUIRED)
target_link_libraries(TargetName Qt5::Location ${AURORA_LDFLAGS})
- #include <QGeoRoute> и др.
Qt Multimedia BuildRequires: pkgconfig(Qt5Multimedia) QT += multimedia find_package(Qt5 COMPONENTS Multimedia REQUIRED)
target_link_libraries(TargetName Qt5::Multimedia ${AURORA_LDFLAGS})
Camera
Microphone
Различные заголовочные файлы для Qt-классов и импорты Qml-компонентов модуля
Qt Network BuildRequires: pkgconfig(Qt5Network) QT += network find_package(Qt5 COMPONENTS Network REQUIRED) - Различные заголовочные файлы для Qt-классов модуля
Qt Qml BuildRequires: pkgconfig(Qt5Quick) Подключается по умолчанию find_package (Qt5 COMPONENTS Qml REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::Qml ${AURORA_LDFLAGS})
- -
Qt Quick BuildRequires: pkgconfig(Qt5Quick) Подключается по умолчанию find_package (Qt5 COMPONENTS Quick REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::Quick ${AURORA_LDFLAGS})
- -
Qt Sensors BuildRequires: pkgconfig(Qt5Sensors) QT += sensors find_package (Qt5 COMPONENTS Sensors REQUIRED)
target_link_libraries(TargetName Qt5::Sensors ${AURORA_LDFLAGS})
Sensors -
Qt SQL - QT += sql find_package(Qt5 COMPONENTS Sql REQUIRED)
target_link_libraries( TargetName Qt5::Sql ${AURORA_LDFLAGS})
- -
Qt SVG Requires: qt5-qtsvg
BuildRequires: qt5-qtsvg-plugin-imageformat-svg
BuildRequires: qt5-plugin-imageformat-gif
BuildRequires: qt5-plugin-imageformat-ico
BuildRequires: qt5-plugin-imageformat-jpeg
QT += svg find_package(Qt5 COMPONENTS Svg REQUIRED) target_link_libraries(TargetName PRIVATE Qt5::Svg) - Различные заголовочные файлы для Qt-классов модуля
Qt WebSockets BuidRequires: qt5-qtwebsockets или BuildRequires: pkgconfig(Qt5WebSockets)
Дополнительно необходимо установить в таргет qt5-qtwebsockets,qt5-qtwebsockets-devel и qt5-qtwebsockets-debuginfo
QT += websockets find_package(Qt5 COMPONENTS WebSockets REQUIRED)
target_link_libraries(TargetName Qt5::WebSockets ${AURORA_LDFLAGS}))
Internet -
Qt XML, Qt XML Patterns - QT += xml
QT += xmlpatterns
find_package(Qt5 COMPONENTS Xml REQUIRED)
target_link_libraries(TargetName PRIVATE Qt5::Xml)
- -

QML зависимости

QML API

QML API Зависимость для QML в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Импорт в QML-код
Configuration - - - - import Nemo.Configuration 1.0
D-Bus Requires: nemo-qml-plugin-dbus-qt5 QT +=dbus find_package (Qt5 COMPONENTS DBus REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::DBus ${AURORA_LDFLAGS})
- import Nemo.DBus 2.0
KeepAlive - - - - import Nemo.KeepAlive 1.2
MDM Policy Provides: mdm-client
Conflicts: mdm-client
CONFIG += link_pkgconfig
PKGCONFIG += sailfishpolicy sailfishmdm
- - import Sailfish.Policy 1.0
Notifications Requires: nemo-qml-plugin-notifications-qt5 - - - import Nemo.Notifications 1.0
Pickers - - - - import Sailfish.Pickers 1.0
QrFilter Requires: qr-filter-qml-plugin >= 1.1.0 - - - import Amber.QrFilter 1.0
Qt.labs.folderlistmodel Requires: qt5-qtdeclarative-import-folderlistmodel - - - import Qt.labs.folderlistmodel 2.1
Settings.Networking.VPN Requires: libconnman-qt - - Профиль ключей подписи: extended import Sailfish.Settings.Networking.Vpn 1.0
Silica Requires: sailfishsilica-qt5 >= 0.10.9 - - - import Sailfish.Silica 1.0
Thumbnailer Requires: nemo-qml-plugin-thumbnailer-qt5 - - - import Nemo.Thumbnailer 1.0
WebView Requires: Sailfish-components-webview-qt5
Requires: sailfish-components-webview-qt5-pickers
Requires: sailfish-components-webview-qt5-popups
Автоматически подключается при подключении libauroraapp
или с помощью CONFIG += link_pkgconfig
Автоматически подключается при подключении libauroraapp Internet import Sailfish.WebView 1.0
import Sailfish.WebEngine 1.0
import Sailfish.WebView.Popups 1.0

QML Модули Qt

QML API Зависимость для QML в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Импорт в QML-код
Qt Graphical Effects - - - - import QtGraphicalEffects 1.0
Qt Location Requires: qt5-qtlocation
Requires: qt5-qtdeclarative-import-location
Requires: qt5-plugin-geoservices-osm
Requires: qt5-plugin-geoservices-webtiles, а также зависимости Qt Positioning
QT += positioning location find_package(Qt5 COMPONENTS Location REQUIRED)
target_link_libraries(TargetName Qt5::Location ${AURORA_LDFLAGS})
- import QtLocation 5.0
Qt Positioning Requires: qt5-qtpositioning
Requires: qt5-qtdeclarative-import-positioning
QT += positioning find_package (Qt5 COMPONENTS Positioning REQUIRED)
target_link_libraries(TargetName Qt5::Positioning ${AURORA_LDFLAGS})
Location import QtPositioning 5.2
Qt Multimedia Requires: qt5-qtmultimedia
Requires: qt5-qtdeclarative-import-multimedia
Requires: qt5-qtmultimedia-plugin-mediaservice-gstmediacapture
Requires: qt5-qtmultimedia-plugin-mediaservice-gstmediaplayer
QT += multimedia find_package(Qt5 COMPONENTS Multimedia REQUIRED)
target_link_libraries(TargetName Qt5::Multimedia ${AURORA_LDFLAGS})
Camera
Microphone
import QtMultimedia 5.0 - 5.6
Qt Quick Requires: qt5-qtdeclarative-import-xmllistmodel Подключается по умолчанию find_package (Qt5 COMPONENTS Quick REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::Quick ${AURORA_LDFLAGS})
- import QtQuick 2.0 – 2.6
import QtQuick.Window 2.0 – 2.2
import QtQuick.Layouts 1.1 – 1.2
import QtQuick.XmlListModel 2.0
Qt Qml Requires: qtdeclarative-import-models2 Подключается по умолчанию find_package (Qt5 COMPONENTS Qml REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::Qml ${AURORA_LDFLAGS})
- -
Qt Sensors Requires: qt5-qtdeclarative-import-sensors QT += sensors find_package (Qt5 COMPONENTS Sensors REQUIRED)
target_link_libraries(TargetName Qt5::Sensors ${AURORA_LDFLAGS})
Sensors import QtSensors 5.0 - 5.2
Qt WebSockets Requires: qt5-qtdeclarative-import-websockets
Дополнительно необходимо установить в таргет Requires: qt5-qtdeclarative-import-websockets
QT += websockets find_package(Qt5 COMPONENTS WebSockets REQUIRED)
target_link_libraries(TargetName Qt5::WebSockets ${AURORA_LDFLAGS}))
Internet import QtWebSockets 1.0-1.1

D-Bus зависимости

D-Bus API

D-Bus API Зависимость для С++ в .spec Зависимость для QML в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Использование D-Bus интерфейсов
Authd D-Bus API - - - - AuthService D-Bus интерфейсы описаны в документации Authd D-Bus API
NFCD - - - - NFC D-Bus интерфейсы описаны в документации NFCD

Прочие зависимости

Зависимости Зависимость для С++ в .spec Зависимость для QML в .spec Подключение модуля в qmake Подключение модуля в cmake Разрешения в .desktop-файле Импорт в C++ код Импорт в QML-код
curl BuildRequires: curl - - - - #include <curl/curl.h> -
libdbus-glib-1.so.2
libkeepalive-glib.so.1
libomplog.so.1
Для libdbus-glib-1.so.2BuildRequires: pkgconfig(dbus-glib-1).
Для libkeepalive-glib.so.1 и libomplog.so.1 подключение аналогичное
- CONFIG += link_pkgconfig
PKGCONFIG += dbus-glib-1
find_package(PkgConfig REQUIRED)
pkg_search_module(DBUSGLIB dbus-glib-1 REQUIREDREQUIRED)
target_include_directories(${PROJECT_NAME} PRIVATE $<BUILD_INTERFACE: ${AURORA_INCLUDE_DIRS} ${DBUSGLIB_INCLUDE_DIRS} >)
Профиль ключей подписи: antivirus #include <dbus/dbus.h>
#include <dbus/dbus-glib.h>
-
libpulse.so.0
libpulse-simple.so.0
libaudioresource.so.1
BuildRequires: qt5-qtmultimedia-plugin-audio-pulseaudio - - - - #include <pulse/pulseaudio.h> -
Nemo.FileManager 1.0 - Requires: nemo-qml-plugin-filemanager - - - - import Nemo.FileManager 1.0
Python3 BuildRequires: python3-gobject
BuildRequires: python3-sqlite
BuildRequires: pyotherside-qml-plugin-python3-qt5 - - - - import io.thp.pyotherside 1.0 – 1.5.
Более подробно о разработке приложения на Python можно прочитать в официальной документации Sailfish OS
QtOpenGL BuildRequires: pkgconfig(Qt5OpenGL) - QT += opengl find_package (Qt5 COMPONENTS OpenGL REQUIRED)
target_link_libraries(TargetName PRIVATE Qt5::OpenGL)
- Различные заголовочные файлы для Qt-классов модуля -
QtQuick.Particles 2.0 - Requires: qt5-qtdeclarative-​import-particles2
Requires: qt5-qtdeclarative-qtquickparticles
- - - - import QtQuick.Particles 2.0
Sailfish.TransferEngine 1.0 (deprecated) - - - - - - import Sailfish.TransferEngine 1.0
SDL2 BuildRequires: SDL2-devel
BuildRequires: SDL2_gfx-devel
BuildRequires: SDL2_image-devel
BuildRequires: SDL2_mixer-devel
BuildRequires: SDL2_net-devel
BuildRequires: SDL2_ttf-devel
- LIBS += -lSDL2 target_link_libraries(${PROJECT_NAME} PRIVATE ... -lSDL2) - Заголовочные файлы в соответствии с SDL API. Например: #include <SDL2/SDL.h> -

Примеры подключения

В качестве примеров ниже используется проект из шаблона. Для каждого примера указана используемая система сборки.

Также перед подключением зависимостей рекомендуем ознакомиться со следующими аспектами при работе с разными видами файлов:

В результате корректного подключения должна произойти сборка проекта.

Подключение Qt D-Bus

В данном примере используется проект с системой сборки qmake.

  1. Добавить в .spec-файл зависимости для сборки пакета:

    BuildRequires: pkgconfig(Qt5DBus)
    

    spec-файл

  2. Добавить в .pro-файл модуль Qt для его использования во время сборки qmake:

    QT +=dbus
    

    pro-файл

  3. В результате данный функционал станет доступным для импорта в .cpp-файл:

    #include <QDBusConnection>
    #include <QDBusArgument>
    

    cpp-файл

Подключение Qt WebSockets

В данном примере используется проект с системой сборки qmake.

  1. Установить необходимые пакеты в таргет. Детально процесс установки в таргет описан здесь.

    Установка зависимостей в таргет

    Установка зависимостей в таргет

  2. Добавить в .spec-файл зависимости для сборки пакета:

    Requires: qt5-qtdeclarative-import-websockets
    ...
    BuildRequires: pkgconfig(Qt5WebSockets)
    

    cpp-файл

  3. Добавить в .pro-файл модуль Qt для его использования во время сборки qmake:

    QT += websockets
    

    pro-файл

  4. Добавить необходимое разрешение для работы приложения в .desktop-файл:

    [X-Application]
    Permissions=Internet
    ...
    

    desktop-файл

  5. В результате данный функционал станет доступным для импорта в .qml-файл:

    import QtWebSockets 1.1
    

    qml-файл

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.