Система сборки qbs с некоторых пор появилась во многих дистрибутивах Linux, а так же уже довольно давно официально поддерживается в IDE Qt Creator. Для настройки системы сборки qbs для использования ее отдельно от IDE (из консоли) нужно:
- Установить devel-пакеты для всех библиотек Qt (Core, Gui, Xml, WebEngine, XmlPattterns, Network, Sql, Multimedia, Script и т.д.)
- Установить g++, если он еще не установлен
- Установить qmake, определить путь до бинарного файла qmake (командой "which qmake"), предположим это будет /usr/bin/qmake
- Установить пакет qbs
- Переключиться в режим пользователя root командой sudo bash или su (для сборки и установки сервера нужны права суперпользователя)
- Выполнить qbs config --list, смотрим профили (profiles). Если уже присутствуют профиль gcc и профиль, содержащий в названии Qt, значит при установке пакета профили были настроены автоматически. В этом случае проверяем ветку profiles.gcc.cpp, в случае отсутствия добавляем ключ с названием cxxFlags и значением "-std=c++11" (команда qbs config profiles.gcc.cpp.cxxFlags -std=c++11), и настройка завершена.
- Выполнить qbs setup-toolchains --detect. Должен появиться профиль для установленного в системе компилятора gcc (обычно с тем же названием "gcc")
- Выполнить qbs setup-qt /usr/bin/qmake qbs_system
- Донастроить qbs: команда qbs config profiles.gcc.cpp.cxxFlags -std=c++11 для правильной компиляции и команда qbs config defaultProfile qbs_system для установки профиля qbs_system как профиля по-умолчанию.
Система сборки qbs готова к работе. Если в процессе сборки обнаруживается нехватка каких-либо библиотек Qt, после установки дополнительных пакетов нужно пересоздать профиль Qt командой qbs setup-qt /usr/bin/qmake qbs_system.
Список библиотек, необходимых для сборки сервера под ОС Ubuntu (16.10, скорее всего будет достаточно для 18.10 и последующих):
g++
gcc
libqt5serialport5-dev
libqt5xmlpatterns5-dev
qbs
qt5-default
qt5-qmake
qtbase5-dev
qtdeclarative5-dev
qtscript5-dev
qttools5-dev
qttools5-dev-tools
Остальные необходимые библиотеки установятся как зависимости указанных.