ການປ່ອຍເຄື່ອງມືສ້າງ Qbs 1.21 ແລະການເລີ່ມຕົ້ນຂອງການທົດສອບ Qt 6.3

Представлен выпуск сборочного инструментария Qbs 1.21. Это восьмой выпуск после ухода компании Qt Company от разработки проекта, подготовленный силами сообщества, заинтересованного в продолжении разработки Qbs. Для сборки Qbs в числе зависимостей требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.

ພາສາສະຄຣິບທີ່ໃຊ້ໃນ Qbs ໄດ້ຖືກດັດແປງເພື່ອອັດຕະໂນມັດການຜະລິດ ແລະ parsing ຂອງ build scripts ໂດຍສະພາບແວດລ້ອມການພັດທະນາປະສົມປະສານ. ນອກຈາກນັ້ນ, Qbs ບໍ່ໄດ້ສ້າງ makefiles, ແຕ່ຕົວຂອງມັນເອງ, ໂດຍບໍ່ມີຕົວກາງເຊັ່ນ: make utility, ຄວບຄຸມການເປີດຕົວ compilers ແລະ linkers, optimizing ຂະບວນການສ້າງໂດຍອີງໃສ່ເສັ້ນສະແດງລາຍລະອຽດຂອງທຸກ dependencies. ການປະກົດຕົວຂອງຂໍ້ມູນເບື້ອງຕົ້ນກ່ຽວກັບໂຄງສ້າງແລະຄວາມເພິ່ງພາອາໄສໃນໂຄງການຊ່ວຍໃຫ້ທ່ານສາມາດຂະຫນານປະສິດທິພາບການປະຕິບັດການດໍາເນີນງານໃນຫຼາຍຫົວຂໍ້. ສໍາລັບໂຄງການຂະຫນາດໃຫຍ່ທີ່ປະກອບດ້ວຍຈໍານວນຫລາຍຂອງໄຟລ໌ແລະໄດເລກະທໍລີຍ່ອຍ, ການປະຕິບັດການກໍ່ສ້າງຄືນໃຫມ່ໂດຍໃຊ້ Qbs ສາມາດໄວກວ່າການເຮັດ - ການກໍ່ສ້າງຄືນໃຫມ່ແມ່ນປະຕິບັດເກືອບທັນທີແລະບໍ່ບັງຄັບໃຫ້ນັກພັດທະນາໃຊ້ເວລາລໍຖ້າ.

ໃຫ້ພວກເຮົາຈື່ວ່າໃນປີ 2018 ບໍລິສັດ Qt ໄດ້ຕັດສິນໃຈຢຸດການພັດທະນາ Qbs. Qbs ໄດ້ຖືກພັດທະນາເປັນການທົດແທນສໍາລັບ qmake, ແຕ່ໃນທີ່ສຸດມັນໄດ້ຖືກຕັດສິນໃຈທີ່ຈະໃຊ້ CMake ເປັນລະບົບການກໍ່ສ້າງຕົ້ນຕໍສໍາລັບ Qt ໃນໄລຍະຍາວ. ການພັດທະນາ Qbs ໃນປັດຈຸບັນໄດ້ສືບຕໍ່ເປັນໂຄງການເອກະລາດທີ່ໄດ້ຮັບການສະຫນັບສະຫນູນຈາກຊຸມຊົນແລະຜູ້ພັດທະນາທີ່ສົນໃຈ. ໂຄງສ້າງພື້ນຖານຂອງບໍລິສັດ Qt ສືບຕໍ່ຖືກນໍາໃຊ້ເພື່ອການພັດທະນາ.

ການປະດິດສ້າງທີ່ສໍາຄັນໃນ Qbs 1.21:

  • Переделан механизм провайдеров модулей (генераторов модулей). Для фреймворков, таких как Qt и Boost, теперь можно использовать более одного провайдера, определять какой из провайдеров запускать при помощи нового свойства qbsModuleProviders и указывать приоритет для выбора сгенерированных разными провайдерами модулей. Например, можно указать два провайдера «Qt» и «qbspkgconfig», первый из которых попытается использовать пользовательскую установку Qt (через поиск qmake), и если подобная установка не будет найдена второй провайдер попытается задействовать Qt, предоставляемый системой (через вызов pkg-config): CppApplication { Depends { name: «Qt.core» } files: «main.cpp» qbsModuleProviders: [«Qt», «qbspkgconfig»] }
  • Добавлен провайдер «qbspkgconfig», который пришёл на смену провайдеру модулей «fallback», пытавшемуся сгенерировать модуль при помощи pkg-config, если искомый модуль не был сгенерирован другими провайдерами. В отличие от «fallback» в «qbspkgconfig» вместо вызова утилиты pkg-config применяется встроенная C++ библиотека для прямого чтения файлов «.pc», что позволяет ускорить работу и получить дополнительную информацию о зависимостях пакетов, недоступную при вызове утилиты pkg-config.
  • Добавлена поддержка спецификации C++23, определяющей будущий стандарт C++.
  • Для инструментария GCC добавлена поддержка архитектуры Elbrus E2K.
  • Для платформы Android добавлено свойство Android.ndk.buildId, позволяющее переопределить значение по умолчанию для флага компоновщика «—build-id».
  • В модулях capnproto и protobuf реализована возможность использования runtime, предоставленных провайдером qbspkgconfig.
  • Решены проблемы с отслеживанием изменений в файлах с исходным кодом на платформе FreeBSD, возникавшие из-за отбрасывания миллисекунд при оценке времени изменения файла.
  • Добавлено свойство ConanfileProbe.verbose, упрощающее отладку проектов, использующих пакетный менеджер Conan.

Дополнительно можно отметить начало альфа-тестирования фреймворка Qt 6.3, в котором реализован новый модуль «Qt Language Server» с поддержкой протоколов Language Server и JsonRpc 2.0, в модуль Qt Core добавлена большая порция новых функций, в модуле Qt Quick Dialogs реализован QML-тип MessageDialog для использования предоставляемых платформой диалоговых окон, в модуль Qt Wayland Compositor добавлен композитный сервер Qt Shell и API для создания собственных расширений пользовательской оболочки.

В модуле Qt QML предложена реализация компилятора qmltc (QML type compiler), позволяющего скомпилировать структуры объектов QML в классы на языке C++. Для коммерческих пользователей Qt 6.3 началось тестирование продукта Qt Quick Compiler, который помимо вышеотмеченного QML Type Compiler включает QML Script Compiler, позволяющий компилировать функции и выражения QML в код на C++. Отмечается, что применение Qt Quick Compiler позволит приблизить производительность программ на базе QML к нативным программам, в частности при компиляции расширений отмечается сокращение времени запуска и выполнения приблизительно на 30% по сравнению с использованием интерпретируемого варианта.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ