rilascio degli strumenti di assembly . Questo è il terzo rilascio dopo che la Qt Company ha abbandonato lo sviluppo del progetto, preparato dalla comunità interessata a continuare lo sviluppo di Qbs. Per la compilazione di Qbs, è necessario Qt tra le dipendenze, anche se Qbs è progettato per gestire la compilazione di qualsiasi progetto. Qbs utilizza una versione semplificata del linguaggio QML per definire gli script di compilazione del progetto, consentendo l'impostazione di regole di compilazione abbastanza flessibili, che possono includere moduli esterni, utilizzare funzioni JavaScript e creare regole di compilazione arbitrarie.
Il linguaggio di scripting utilizzato in Qbs è stato adattato per automatizzare la generazione e l'analisi degli script di build nei vari ambienti di sviluppo integrati. Inoltre, Qbs non genera file make, ma gestisce direttamente, senza intermediari come l'utilità make, l'avvio dei compilatori e dei linker, ottimizzando il processo di build sulla base di un grafo dettagliato di tutte le dipendenze. La disponibilità di dati iniziali sulla struttura e sulle dipendenze del progetto consente di parallelizzare efficacemente l'esecuzione delle operazioni su più thread. Per progetti di grandi dimensioni, composti da un elevato numero di file e sottodirectory, le prestazioni della ricompilazione con Qbs possono superare di gran lunga quelle di make — la ricompilazione avviene quasi istantaneamente, senza far perdere tempo agli sviluppatori in attesa.
Ricordiamo che nel 2018 Qt Company ha preso la decisione di interrompere lo sviluppo di Qbs. Qbs è stato sviluppato come sostituto di qmake, ma alla fine è stato deciso di utilizzare CMake come sistema principale di compilazione per Qt a lungo termine. Lo sviluppo di Qbs ora continua in forma di progetto indipendente, supportato dalla comunità e dai programmatori interessati. Per lo sviluppo continua a essere utilizzata l'infrastruttura di Qt Company.
Principali Qbs 1.16:
- È stata garantita la fusione delle proprietà di lista nei moduli con dipendenze reciproche, il che è importante, ad esempio, nella gestione di flag come cpp.staticLibraries;
- È stata aggiunta la rilevazione automatica di GCC e IAR per microcontrollori Renesas;
- È stata aggiunta la compatibilità con Xcode 11.4 su macOS;
- Sono state ampliate le funzionalità del modulo di supporto clang-cl;
- È stata garantita la rilevazione automatica di MSVC, clang-cl e MinGW nei profili dove non è stata specificata esplicitamente la posizione degli strumenti;
- È stata semplificata l'inclusione e la configurazione delle informazioni di debug separate (cpp.separateDebugInformation) attraverso le sezioni Application e DynamicLibrary nelle impostazioni del progetto;
- È stata aggiunta la compatibilità con Qt 5.14 per Android e l'utility qbs-setup-android è stata aggiornata;
- È stata aggiunta il supporto per i file JSON generati dall'utility moc nelle impostazioni Qt.core.generateMetaTypesFile e Qt.core.metaTypesInstallDir (Qt >= 5.15);
- È stato aggiunto il supporto per il nuovo meccanismo di dichiarazione dei tipi per QML introdotto in Qt 5.15;
- È stata aggiunta la configurazione ConanfileProbe per semplificare l'integrazione di Qbs con il gestore di pacchetti (per C/C++).
Fonte: opennet.ru
