È stata pubblicata la versione finale degli strumenti di compilazione Qbs

Azienda Qt pubblicato strumenti di assemblaggio Qb 1.13 (QtBuildSuite). Questa è l'ultima versione di Qbs prodotta dalla società Qt. Ricordiamo cosa è successo prima ricevuto decisione di interrompere lo sviluppo di Qbs. Qbs è stato sviluppato in sostituzione di qmake, ma alla fine si è deciso di utilizzare CMake come sistema di compilazione principale per Qt a lungo termine.

Nel prossimo futuro si prevede la creazione di un progetto indipendente per continuare lo sviluppo di Qbs da parte della comunità, il cui destino dipenderà dall'interesse per il sistema di assemblaggio in questione da parte degli sviluppatori indipendenti. Qt Company smette di lavorare su Qbs a causa della necessità di investimenti aggiuntivi e di costi elevati per la promozione di Qbs.

Ricordiamo che per costruire Qbs, Qt è richiesto come dipendenza, sebbene Qbs stesso sia progettato per organizzare l'assemblaggio di qualsiasi progetto. Qbs utilizza una versione semplificata del linguaggio QML per definire gli script di compilazione del progetto, che consente di definire regole di compilazione abbastanza flessibili in grado di connettere moduli esterni, utilizzare funzioni JavaScript e creare regole di compilazione personalizzate.
Qbs non genera makefile e controlla in modo indipendente l'avvio di compilatori e linker, ottimizzando il processo di compilazione sulla base di un grafico dettagliato di tutte le dipendenze. La presenza di dati iniziali sulla struttura e sulle dipendenze nel progetto consente di parallelizzare efficacemente l'esecuzione delle operazioni in più thread.

Principali innovazioni in Qbs 1.13:

  • Aggiunta la possibilità di utilizzare i moduli pkg-config nei progetti utilizzando lo stesso meccanismo di elaborazione delle dipendenze utilizzato per i moduli Qbs. Ad esempio, se il tuo sistema ha un pacchetto per creare OpenSSL basato su pkg-config, per usarlo in un progetto Qbs, aggiungi semplicemente 'Depends { name: "openssl" }';
  • Implementato il rilevamento automatico dei moduli Qt disponibili. Gli sviluppatori non hanno più bisogno di creare un profilo con i percorsi dei moduli utilizzando il comando setup-qt; tutti i moduli Qt specificati nelle dipendenze verranno configurati automaticamente;
  • Aggiunti strumenti per controllare il numero di attività di assemblaggio eseguite in parallelo a livello di singoli comandi. Ad esempio, il collegamento crea un grande carico di I/O e consuma una quantità significativa di RAM, quindi il linker richiede impostazioni di avvio diverse rispetto al compilatore. È ora possibile impostare impostazioni separate utilizzando il comando "qbs —job-limits linker:2,compiler:8";
  • Sono state apportate modifiche al linguaggio di scripting. Ora è possibile definire le regole senza specificare un file stub per l'output e non è necessario utilizzare la direttiva "import qbs" all'inizio dei file di progetto. Nuove proprietà install e installDir sono state aggiunte agli elementi Application, DynamicLibrary e StaticLibrary per un'installazione più comoda dei file eseguibili;
  • Aggiunto supporto per la scansione ricorsiva degli script del linker
    collegamento GNU;

  • Per C++, la proprietà cpp.linkerVariant è stata implementata per forzare l'uso dei linker ld.gold, ld.bfd o lld;
  • Qt introduce la proprietà Qt.core.enableBigResources per la creazione di risorse Qt di grandi dimensioni
  • Al posto dell'obsoleto elemento AndroidApk si propone di utilizzare la tipologia generica Application;
  • Aggiunto un modulo per la creazione di test basati su autotest;
  • Aggiunto modulo texttemplate con funzionalità simili a QMAKE_SUBSTITUTES in qmake;
  • Aggiunto il supporto iniziale per il formato Protocol Buffers per C++ e Objective-C.

Fonte: opennet.ru

Aggiungi un commento