Qbs е управлявана от общността, агностична система за автоматизиране на изграждането. Той е бърз и предлага лесен за научаване език, базиран на QML.
наскоро беше обявено пускането на новата версия на Qbs 2.0, който е безплатен междуплатформен софтуер с отворен код за управление на процеса на създаване на софтуер. Той е проектиран да поддържа големи и сложни проекти, написани на различни езици за програмиране, главно C/C++.
Новата версия 2.0 е значителен по отношение на номера на версията, тъй като е свързан с внедряването на нов JavaScript backend., който замени QtScript, който беше отхвърлен в Qt 6.
За тези, които не са запознати с Qbs, трябва да знаят, че това използва опростена версия на езика QML за дефиниране на скриптове за изграждане на проекти, което ви позволява да дефинирате доста гъвкави правила за изграждане, където могат да се включват външни модули, могат да се използват функции на JavaScript и могат да се създават произволни правила за изграждане.
Qbs е уникален с това, чеe няма никакъв механизъм за вътрешни компилации, осигуряване на възможност за създаване на множество компилации от едно дърво на източника, включително изграждане от едно извикване на команда и паралелно.
Това е ключова характеристика, която гарантира, че изходните файлове не са засегнати, ако компилационна директория бъде изтрита и че в изходната директория не се записват изходни артефакти. За да се изгради Qbs, Qt е необходим като зависимост, въпреки че самият Qbs е проектиран да организира сглобяването на всеки проект.
Скриптовият език, използван в Qbs, е пригоден да автоматизира генерирането и анализирането на скриптове за изграждане от IDE. Освен това Qbs не генерира make-файлове и, без посредници като помощната програма make, контролира издаването на компилатори и линкери, като оптимизира процеса на изграждане въз основа на подробна графика на всички зависимости.
Наличието на първоначални данни за структурата и зависимостите в проекта ви позволява ефективно да паралелизирате изпълнението на операции в няколко нишки. За големи проекти, състоящи се от голям брой файлове и поддиректории, производителността на реконструкциите с помощта на Qbs може да бъде няколко пъти по-добра от make: реконструкцията е почти мигновена и не губи време на разработчиците в чакане.
Основни новости на QBS 2.0
Тази нова версия на QBS 2.0 е забележителна, както беше споменато в началото, поради нов JavaScript двигател, който идва да замени QtScript който беше остарял за Qt 6, тъй като се смяташе за нереалистично да продължи да поддържа QtScript самостоятелно поради сложни обвързвания към JavaScriptCore.
Перспективата за запазване на QtScript с неговата сложна зависимост не изглеждаше особено привлекателна. Въпреки това, нито един от кандидатите не предложи API за прихващане на достъп до собственост, нещо, което разработчиците казват, че са абсолютно необходими от съображения за производителност.
От гледна точка на потребителя не трябва да има забележими промени; по-специално представянето изглежда почти същото. QtScript обаче беше доста снизходителен в приемането на недефинирани стойности в контексти, където не беше необходимо, така че новата реализация може да разкрие някои грешки във вашите проекти.
Моторът е в съответствие със спецификацията ES2019 и значително превъзхожда съществуващите си колеги по производителност (XS с 35%, DukTape с повече от два пъти, JerryScript с три пъти и MuJS със седем пъти). От гледна точка на разработване на скрипт за компилация, преминаването към нов двигател не трябва да води до забележими промени.
Производителността също ще остане почти същата. От разликите има по-строги изисквания в новия двигател за използване на нулеви стойности, което може да разкрие проблеми в съществуващи проекти, които са останали незабелязани при използване на QtScript.
В допълнение към това се споменава и че премахна файловете на проекта qmake, което доведе до намалена работа по поддръжката за разработчици.
Накрая се споменава, че версия 2.1 ще види пренаписване на кода, с който разработчиците предполагат, че ще имат няколко нови функции, както и общи подобрения в производителността.
Ако се интересувате да научите повече за него, можете да се консултирате с подробностите В следващия линк.