mirror of
https://github.com/arcan1s/arcanis.me.git
synced 2025-08-30 16:29:55 +00:00
more pretty md files
This commit is contained in:
@ -7,17 +7,29 @@ tags: archlinux, linux, сборка, qutim
|
||||
title: Сборка Qutim с Qt5
|
||||
short: building-qutim-using-qt5
|
||||
---
|
||||
Если кто-то не знает, [Qutim](//qutim.org "Домашняя страница Qutim") - мультипротокольный кросс-платформенный месседжер. Написан он на `CPP` с использованием библиотек Qt. Проект активно развивается. В этой статье речь пойдет о реализации сборки данного пакета в Archlinux с использованием библиотек Qt5 (а не Qt4, как это делают текущие пакеты в AUR).
|
||||
Если кто-то не знает, [Qutim](//qutim.org "Домашняя страница Qutim") -
|
||||
мультипротокольный кросс-платформенный месседжер. Написан он на `CPP` с
|
||||
использованием библиотек Qt. Проект активно развивается. В этой статье речь
|
||||
пойдет о реализации сборки данного пакета в Archlinux с использованием библиотек
|
||||
Qt5 (а не Qt4, как это делают текущие пакеты в AUR).
|
||||
|
||||
<!--more-->
|
||||
|
||||
## <a href="#problems" class="anchor" id="problems"><span class="octicon octicon-link"></span></a>Что не так?
|
||||
|
||||
Да все так. Просто пакет использует для сборки систему [qbs](//qt-project.org/wiki/qbs "Wiki"), которая, на мой взгляд, немного странная. Пакет, необходимый для сборки, [находится в AUR](//aur.archlinux.org/packages/qbs-git/ "AUR") (рекомендую git-версию). Когда я спросил у Andrea Scarpino (который сопровождает все KDE и Qt пакеты в официальные репозитории) по поводу переноса этого пакета в репозитории, он ответил, что всему свое время. В принципе, я с ним согласен, так как проект, судя по всему, еще немного сыроват.
|
||||
Да все так. Просто пакет использует для сборки систему [qbs]
|
||||
(//qt-project.org/wiki/qbs "Wiki"), которая, на мой взгляд, немного странная.
|
||||
Пакет, необходимый для сборки, [находится в AUR]
|
||||
(//aur.archlinux.org/packages/qbs-git/ "AUR") (рекомендую git-версию). Когда я
|
||||
спросил у Andrea Scarpino (который сопровождает все KDE и Qt пакеты в
|
||||
официальные репозитории) по поводу переноса этого пакета в репозитории, он
|
||||
ответил, что всему свое время. В принципе, я с ним согласен, так как проект,
|
||||
судя по всему, еще немного сыроват.
|
||||
|
||||
## <a href="#prepare" class="anchor" id="prepare"><span class="octicon octicon-link"></span></a>Подготовка
|
||||
|
||||
Установим зависимости. Что-то может быть пропустил, зависимости сканировал с использованием `namcap`:
|
||||
Установим зависимости. Что-то может быть пропустил, зависимости сканировал с
|
||||
использованием `namcap`:
|
||||
|
||||
```bash
|
||||
pacman -Sy --asdeps clang git libc++abi qt5-quick1 qt5-x11extras
|
||||
@ -26,21 +38,28 @@ yaourt -S --asdeps jreen-git qbs-git
|
||||
|
||||
### <a href="#qbs" class="anchor" id="qbs"><span class="octicon octicon-link"></span></a>Настройка qbs
|
||||
|
||||
Желающие могут почитать документацию [по ссылке](//qt-project.org/wiki/qbs "Wiki") или посмотреть примеры (включены в пакет). Загвоздка в том, что эта штука использует файл настроек, который, во-первых, нужно сначала сгенерировать, во-вторых, хранится в домашней директории (и только там). В теории, генерация файла настроек (`~/.config/QtProject/qbs.conf`) происходит следующим образом:
|
||||
Желающие могут почитать документацию [по ссылке](//qt-project.org/wiki/qbs "Wiki")
|
||||
или посмотреть примеры (включены в пакет). Загвоздка в том, что эта штука
|
||||
использует файл настроек, который, во-первых, нужно сначала сгенерировать,
|
||||
во-вторых, хранится в домашней директории (и только там). В теории, генерация
|
||||
файла настроек (`~/.config/QtProject/qbs.conf`) происходит следующим образом:
|
||||
|
||||
```bash
|
||||
qbs-setup-qt --detect
|
||||
qbs-detect-toolchains
|
||||
```
|
||||
|
||||
Сначала находим Qt для сборки, потом находим инструментарий (компиляторы, например). Дальше вставляем инструментарий (например, нам для Qutim нужен `clang`) в Qt, например, так:
|
||||
Сначала находим Qt для сборки, потом находим инструментарий (компиляторы,
|
||||
например). Дальше вставляем инструментарий (например, нам для Qutim нужен
|
||||
`clang`) в Qt, например, так:
|
||||
|
||||
```bash
|
||||
sed 's/clang\\/qt-5-2-0\\/g' -i ~/.config/QtProject/qbs.conf
|
||||
```
|
||||
|
||||
Альтернативные варианты - править файл вручную или воспользоваться `qbs-config-ui` или `qbs-config` на Ваш выбор.
|
||||
Так или иначе, нужный файл мы сгенерировали, сохраним его в будущей директории сборки:
|
||||
Альтернативные варианты - править файл вручную или воспользоваться `qbs-config-ui`
|
||||
или `qbs-config` на Ваш выбор. Так или иначе, нужный файл мы сгенерировали,
|
||||
сохраним его в будущей директории сборки:
|
||||
|
||||
```ini
|
||||
[General]
|
||||
@ -142,7 +161,10 @@ cd qutim
|
||||
HOME=$(pwd) qbs -j $(nproc) -d ../build release profile:qutim
|
||||
```
|
||||
|
||||
Я пытался сделать универсальный способ сборки пакета, поэтому такое странное переназначение домашней директории. Флаг `-j` указывает число потоков сборки, флаг `-d` директорию сборки, `release` тип сборки (debug, release), `profile` используемый профиль, описанный в файле настроек.
|
||||
Я пытался сделать универсальный способ сборки пакета, поэтому такое странное
|
||||
переназначение домашней директории. Флаг `-j` указывает число потоков сборки,
|
||||
флаг `-d` директорию сборки, `release` тип сборки (debug, release), `profile`
|
||||
используемый профиль, описанный в файле настроек.
|
||||
|
||||
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
|
||||
|
||||
@ -150,7 +172,8 @@ HOME=$(pwd) qbs -j $(nproc) -d ../build release profile:qutim
|
||||
HOME=$(pwd) sudo qbs install -d ../build --install-root "/usr" profile:qutim
|
||||
```
|
||||
|
||||
Из нового - указание корневого каталога (`--install-root`). Без этого пакет будет установлен в `/` (`/bin` и `/lib`).
|
||||
Из нового - указание корневого каталога (`--install-root`). Без этого пакет будет
|
||||
установлен в `/` (`/bin` и `/lib`).
|
||||
|
||||
## <a href="#pkgbuild" class="anchor" id="pkgbuild"><span class="octicon octicon-link"></span></a>PKGBUILD
|
||||
|
||||
|
Reference in New Issue
Block a user