Jump to content

Qbs (инструмент сборки)

Qbs
Разработчик(и) Qt-проект
Первоначальный выпуск 15 февраля 2012 г .; 12 лет назад ( 15 февраля 2012 г. ) [1]
Стабильная версия
1.22.1 / 29 апреля 2022 г .; 2 года назад ( 29.04.2022 ) [2]
Репозиторий www .код .qt .что /cgit /qbs /qbs .git
Написано в C++ , JavaScript , QML , немного Java и TypeScript.
Операционная система Кросс-платформенный
Тип Автоматизация сборки , инструменты разработки программного обеспечения
Лицензия LGPL [3]
Веб-сайт неделя .qt .что /Qbs  Edit this on Wikidata

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

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0ed9369461b46ff696d194c6fd028a5f__1718395440
URL1:https://arc.ask3.ru/arc/aa/0e/5f/0ed9369461b46ff696d194c6fd028a5f.html
Заголовок, (Title) документа по адресу, URL1:
Qbs (build tool) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)