Foi lançada a versão 2.0 da ferramenta de construção Qbs. Para compilar o Qbs, é necessário ter o Qt entre suas dependências, embora o próprio Qbs seja projetado para gerenciar a construção de qualquer projeto. O Qbs utiliza uma variante simplificada da linguagem QML para definir scripts de construção do projeto, permitindo estabelecer regras de construção suficientemente flexíveis, onde módulos externos podem ser conectados, funções JavaScript podem ser utilizadas e regras de construção arbitrárias podem ser criadas.
A linguagem de scripts utilizada no Qbs é adaptada para automatizar a geração e a análise dos scripts de compilação em ambientes de desenvolvimento integrados. Além disso, o Qbs não gera arquivos make, mas controla diretamente, sem intermediários, como a ferramenta make, a execução de compiladores e vinculadores, otimizando o processo de compilação com base em um gráfico detalhado de todas as dependências. A presença de dados iniciais sobre a estrutura e as dependências do projeto permite uma execução eficiente de operações em múltiplas threads. Para projetos grandes, compostos por muitos arquivos e subdiretórios, a performance da recompilação usando Qbs pode superar a do make em várias vezes — a recompilação é concluída quase instantaneamente e não faz o desenvolvedor perder tempo esperando.
Lembramos que, em 2018, a Qt Company decidiu interromper o desenvolvimento do Qbs. O Qbs foi desenvolvido como substituto do qmake, mas no final foi decidido usar o CMake como o sistema de compilação principal para o Qt a longo prazo. O desenvolvimento do Qbs agora é continuado na forma de um projeto independente, apoiado pela comunidade e por desenvolvedores interessados. A infraestrutura da Qt Company ainda é utilizada para o desenvolvimento.
A significativa mudança no número da versão está relacionada à implementação de um novo backend JavaScript, que substitui o QtScript, declarado obsoleto no Qt 6. Continuar a manutenção do QtScript por conta própria, devido às complexas ligações com o JavaScriptCore, foi considerado irrealista. Portanto, o motor JavaScript autossuficiente e compacto QuickJS, criado por Fabrice Bellard, fundador dos projetos QEMU e FFmpeg, foi escolhido como base para o novo backend. O motor suporta a especificação ES2019 e tem um desempenho significativamente superior a alternativas existentes (XS em 35%, DukTape em mais de duas vezes, JerryScript em três vezes e MuJS em sete vezes).
Do ponto de vista do desenvolvimento de scripts de construção, a transição para o novo motor não deve resultar em mudanças significativas. O desempenho também deve permanecer em níveis semelhantes. Entre as diferenças, destacam-se os requisitos mais rigorosos do novo motor em relação ao uso de valores indefinidos, o que pode revelar problemas em projetos existentes que passaram despercebidos ao usar o QtScript.
Fonte: opennet.ru
