Empresa QT
Num futuro próximo, espera-se que seja criado um projeto independente para continuar o desenvolvimento de Qbs pela comunidade, cujo destino dependerá do interesse no sistema de montagem em questão por parte de desenvolvedores independentes. A Qt Company deixa de trabalhar em Qbs devido à necessidade de investimentos adicionais e aos altos custos de promoção de Qbs.
Lembremos que para construir o Qbs, o Qt é necessário como dependência, embora o próprio Qbs seja projetado para organizar a montagem de quaisquer projetos. Qbs usa uma versão simplificada da linguagem QML para definir scripts de construção de projeto, o que permite definir regras de construção bastante flexíveis que podem conectar módulos externos, usar funções JavaScript e criar regras de construção personalizadas.
Qbs não gera makefiles e controla de forma independente o lançamento de compiladores e linkers, otimizando o processo de construção com base em um gráfico detalhado de todas as dependências. A presença de dados iniciais sobre a estrutura e dependências do projeto permite paralelizar efetivamente a execução de operações em diversos threads.
Principais inovações no Qbs 1.13:
- Adicionada a capacidade de usar módulos pkg-config em projetos que usam o mesmo mecanismo de processamento de dependência usado para módulos Qbs. Por exemplo, se o seu sistema possui um pacote para construção de OpenSSL baseado em pkg-config, para utilizá-lo em um projeto Qbs, basta adicionar 'Depends { name: "openssl" }';
- Implementada detecção automática de módulos Qt disponíveis. Os desenvolvedores não precisam mais criar um perfil com caminhos de módulos usando o comando setup-qt; todos os módulos Qt especificados nas dependências serão configurados automaticamente;
- Adicionadas ferramentas para controlar o número de tarefas de montagem executadas em paralelo no nível de comandos individuais. Por exemplo, a vinculação cria uma grande carga de E/S e consome uma quantidade significativa de RAM, portanto, o vinculador requer configurações de inicialização diferentes das do compilador. Configurações separadas agora podem ser definidas usando o comando “qbs —job-limits linker:2,compiler:8”;
- Foram feitas alterações na linguagem de script. As regras agora podem ser definidas sem especificar um arquivo stub para saída, e não é necessário usar a diretiva “import qbs” no início dos arquivos do projeto. Novas propriedades install e installDir foram adicionadas aos elementos Application, DynamicLibrary e StaticLibrary para instalação mais conveniente de arquivos executáveis;
- Adicionado suporte para verificação recursiva de scripts de vinculador
Vinculador GNU; - Para C++, a propriedade cpp.linkerVariant foi implementada para forçar o uso dos vinculadores ld.gold, ld.bfd ou lld;
- Qt introduz a propriedade Qt.core.enableBigResources para criar grandes recursos Qt
- Em vez do elemento obsoleto AndroidApk, propõe-se usar o tipo genérico Application;
- Adicionado módulo para criação de testes baseados em autoteste;
- Adicionado módulo texttemplate com recursos semelhantes a QMAKE_SUBSTITUTES no qmake;
- Adicionado suporte inicial para o formato Protocol Buffers para C++ e Objective-C.
Fonte: opennet.ru