Qbs (инструмент сборки)
Разработчик(и) | Qt-проект |
---|---|
Первоначальный выпуск | 15 февраля 2012 г [1] |
Стабильная версия | 1.22.1
/ 29 апреля 2022 г [2] |
Репозиторий | www |
Написано в | C++ , JavaScript , QML , немного Java и TypeScript. |
Операционная система | Кросс-платформенный |
Тип | Автоматизация сборки , инструменты разработки программного обеспечения |
Лицензия | LGPL [3] |
Веб-сайт | неделя ![]() |
Qbs (произносится как Cubes ) — это кроссплатформенное бесплатное программное обеспечение с открытым исходным кодом для управления процессом сборки программного обеспечения . Он был разработан для поддержки больших и сложных проектов, написанных на любом количестве языков программирования, в первую очередь C / C++ .
Qbs — это инструмент «все в одном», который генерирует граф сборки на основе описания проекта высокого уровня (как и его предшественник qmake ), а также дополнительно берет на себя задачу выполнения команд в графе сборки низкого уровня (например, make ).
Qbs изначально был создан Nokia , затем The Qt Company , которая распространяла его вместе со своим набором инструментов Qt . Он интегрируется с инфраструктурой Qt и автоматизирует создание источников moc (компилятор метаобъектов) и rcc (компилятор ресурсов), которые используются в системе метаобъектов Qt и при интеграции двоичных ресурсов (например, изображений).
Qt Group объявила устаревшей в 2018 году, перенаправляя ресурсы в CMake. вместо этого «Устаревание Qbs» . .
Функции
[ редактировать ]Qbs уникален тем, что не имеет механизма сборки в исходном коде, гарантируя возможность создания нескольких сборок из одного дерева исходных кодов, в том числе сборку их с помощью одного вызова команды и параллельно. Это ключевая функция, гарантирующая, что исходные файлы останутся незатронутыми в случае удаления каталога сборки и что никакие выходные артефакты не будут записаны в исходный каталог.
Qbs не имеет встроенной поддержки какого-либо конкретного языка программирования, набора инструментов или библиотек. Это снова контрастирует с qmake , который жестко поддерживает многие инструменты и рабочие процессы, связанные с Qt . Вместо этого Qbs поставляется с набором модулей, написанных на диалекте QML и JavaScript , которые обеспечивают поддержку различных языков программирования и инструментов. В настоящее время Qbs предоставляет модули, поддерживающие Android SDK и NDK , C , C++ , Java , NSIS , TypeScript , WiX , Xcode и множество других инструментов.
Qbs может создавать проекты для многих платформ, включая Android , FreeBSD , iOS , Linux , macOS , QNX , tvOS , watchOS и Windows , с поддержкой приложений универсальной платформы Windows , INTEGRITY , VxWorks и других платформ, находящихся в стадии разработки.
Qt Creator обеспечивает встроенную поддержку Qbs, а интеграция IDE для Visual Studio обеспечивается функцией генераторов. Поддержка Xcode в настоящее время находится в стадии разработки.
Процесс сборки
[ редактировать ]Процесс сборки в Qbs происходит в два этапа. Сначала граф сборки разрешается путем чтения файлов конфигурации проекта и вычисления набора входных и выходных узлов и зависимостей между ними в направленном ациклическом графе . Затем исполнитель выполняет все команды, необходимые для создания выходных файлов, параллельно в соответствии с правилами зависимостей.
Каждый проект сборки содержит один файл графа сборки (*.bg) в каталоге, где Qbs хранит сериализованное представление своего внутреннего формата графа сборки. Десериализация этого файла и использование кэшированной информации позволяет Qbs очень быстро выполнить проект, что приводит к практически мгновенному созданию дополнительных сборок. Удаление файла графа сборки приводит к полной (чистой) перестройке всего проекта. В отличие от make , Qbs не полагается на временные метки файлов в каталоге сборки, и изменение его содержимого не приведет к перестроению целевых объектов, если только --check-outputs
используется опция. Это сделано из соображений производительности, поскольку на некоторых платформах (например, Windows) чтение временных меток из файловой системы происходит очень медленно по сравнению с их чтением из файла графа сборки.
Пример файла Qbs
[ редактировать ]CppApplication {
name: "helloworld"
files: "main.cpp"
}
История
[ редактировать ]Разработка Qbs началась в Nokia в 2010 году в ответ на необходимость замены qmake . Дизайн Qbs призван обеспечить гораздо более низкую кривую обучения, лучшую интеграцию с IDE, а также стабильный и мощный язык с предсказуемым поведением. Qbs 1.0 был выпущен в 2013 году. [4] и примерно в то же время разрабатывался компанией Qt в рамках модели управления Qt Project . Разработчики надеялись, что в конечном итоге Qbs заменит qmake в качестве собственной системы сборки Qt. Однако в октябре 2018 года он был упразднен. [5] в пользу qmake и/или cmake. В сообщении в блоге от 7 августа 2019 года компания Qt заявила, что, начиная с Qt 6, cmake станет стандартной системой сборки Qt. [6] и назвал одним из факторов чрезвычайную популярность cmake. [6]
Разработку Qbs взяли на себя внешние волонтеры, которые по состоянию на июнь 2020 года все еще активно поддерживают ее под эгидой Qt Project . [7] Хотя компания Qt объявила, что прекращает дальнейшую разработку Qbs, они обязались предоставить необходимую инфраструктуру для будущих выпусков Qbs сообществом. [5]
Приложения, использующие Qbs
[ редактировать ]Ссылки
[ редактировать ]- ^ «Знакомство с Qbs» . Компания Qt . Проверено 2 июня 2016 г.
- ^ «индекс /official_releases/qbs» . скачать.qt.io . Проверено 13 мая 2022 г.
- ^ «Лицензирование Qt — Сеть разработчиков Qt» . qt-project.org.
- ^ «Выпущена qbs 1.0.0» . Компания Qt . Проверено 2 июня 2016 г.
- ^ Jump up to: а б «Устаревание Qbs» . www.qt.io.
- ^ Jump up to: а б «Техническое видение Qt 6 — следующий большой релиз» . www.qt.io.
- ^ «GitHub — qbs/qbs: современный инструмент сборки программных проектов» . Гитхаб . 22 июля 2022 г.
Дальнейшее чтение
[ редактировать ]- Узайр, Суфьян бин (11 ноября 2022 г.). Освоение KDE: Руководство для начинающих . ЦРК Пресс. ISBN 978-1-000-77589-1 .