Конвертер Документов
Проект предоставляет пример использования LibreOffice для конвертирования документов.
Условия использования и участия
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Каталог application содержит исходный код приложения:
- Файл application.pro описывает структуру проекта для системы сборки qmake.
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл DocumentConverter.qml предоставляет реализацию окна приложения.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.DocumentConverter.desktop определяет отображение и параметры запуска приложения.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.DocumentConverter.spec используется инструментом rpmbuild.
- Файл ru.auroraos.DocumentConverter.pro описывает проект, который содержит два подпроекта, первый отвечает за сборку libreoffice, второй описывает структуру приложения для системы сборки qmake.
- Каталог upstream содержит исходный код библиотеки LibreOffice (подмодуль git).
- Каталог tarballs содержит зависимости в форме архивов, необходимые для сборки библиотеки LibreOffice.
- Каталог libs содержит зависимости в форме исходного кода, необходимые для сборки библиотеки LibreOffice.
Совместимость
Проект совместим с актуальными версиями ОС Аврора.
Сборка проекта
Чистовая сборка
- Убедитесь, что у вас есть 32 ГБ оперативной памяти и SDK с docker (не используйте VB для сборки этого примера).
- Откройте терминал или командную строку.
- Перейдите в каталог, содержащий ваш Git-репозиторий.
- Выполните команду "git lfs pull", чтобы загрузить все файлы, отслеживаемые LFS.
- Выполните команду "git submodule update --init", чтобы обновить и инициализировать все подмодули в репозитории.
- Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl build-init", чтобы инициализировать окружение сборки.
- Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl prepare", чтобы применить патчи, необходимые для сборки.
- Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl build", чтобы начать сборку пакета.
- Выполните команду для подписи rpm-пакета:
sfdk engine exec rpmsign-external sign \
--key absolute/path/to/key/file.pem \
--cert absolute/path/to/cert/file.pem \
absolute/path/to/rpm/package.rpm
Целевой rpm-пакет находится в каталоге RPMS.
Решение возможных проблем
Если сборка проекта упала со следующей ошибкой
+ aclocal -I <path/to>/DocumentConverter/upstream/m4
autom4te: error: need GNU m4 1.4 or later: /usr/bin/m4
aclocal: error: echo failed with exit status: 1
то требуется зайти в таргет и установить вручную зависимость m4.
Повторная сборка под другой таргет
Поскольку сборка проходит в той же самой директории, что и основной исходный код, перед сборкой под новый таргет требуется удалить результат предыдущий сборки. Для этого требуется выполнить следующие команды из корня проекта:
rm -fr libs_build
rm -fr upstream/workdir
rm -f application/Makefile
cd libs/liblangtag && make distclean
Снимки экранов
Ограничения
LibreOffice в текущей реализации не поддерживает одновременную работу в нескольких потоках. Попытка инициализации объекта Office во время работы другого процесса может привести к задержке инициализации до завершения текущей конвертации или падению приложения.