rilascio degli strumenti di assemblaggio . Questo è il quarto rilascio dopo l'abbandono da parte di Qt Company dello sviluppo del progetto, preparato dalle forze della comunità interessate a continuare lo sviluppo di Qbs. Per la compilazione di Qbs è richiesta Qt tra le dipendenze, sebbene Qbs stesso sia progettato per organizzare la compilazione di qualsiasi progetto. Qbs utilizza una versione semplificata del linguaggio QML per definire gli script di compilazione del progetto, il che consente di stabilire regole di compilazione abbastanza flessibili in cui possono essere collegati moduli esterni, utilizzate funzioni in JavaScript e create regole di compilazione arbitrarie.
Il linguaggio di scripting utilizzato in Qbs è stato adattato per automatizzare la generazione e l'analisi degli script di compilazione in ambienti di sviluppo integrati. Inoltre, Qbs non genera makefile, ma controlla direttamente, senza intermediari come l'utilità make, l'avvio dei compilatori e dei linker, ottimizzando il processo di compilazione 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 in modo efficace l'esecuzione delle operazioni su più thread. Per grandi progetti, composti da un numero elevato di file e sottodirectory, le prestazioni di ricompilazione utilizzando Qbs possono superare di gran lunga quelle di make: la ricompilazione avviene quasi istantaneamente e non costringe lo sviluppatore a perdere tempo ad aspettare.
Ricordiamo che nel 2018 la Qt Company ha preso la decisione di interrompere lo sviluppo di Qbs. Qbs è stato sviluppato come sostituzione di qmake, ma alla fine è stato deciso di utilizzare CMake come sistema di build principale per Qt a lungo termine. Lo sviluppo di Qbs è ora proseguito come un progetto indipendente, supportato dalla comunità e da sviluppatori interessati. Per lo sviluppo, continua ad essere utilizzata l'infrastruttura di Qt Company.
Principali Qbs 1.17:
- Aggiunto supporto iniziale .
- Aggiunto il modulo capnp per utilizzare il protocollo di serializzazione dei dati nelle applicazioni C++.
- Possibilità di specificare le variabili product e project nel lato destro delle definizioni della proprietà moduleProvider (ad esempio, «moduleProviders.mygenerator.chooseLettersFrom: project.beginning»).
- Aggiunta la supporto per gli strumenti di compilazione di progetti C/C++ per lavorare su hardware senza OS (bare-metal, impostando il parametro qbs.targetPlatform su 'none'): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) e
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Aggiunta la supporto dell'ambiente di sviluppo Xcode 12.0 per macOS.
- Pulizia dei moduli «Qt for Android».
- Migliorato il supporto per la compilazione sulla piattaforma Android. Nel modulo Android.sdk è stata aggiunta la proprietà packageType per creare pacchetti «aab» (Android App Bundles) invece di «apk», così come la proprietà aaptName per utilizzare il nuovo aapt2 (Android Asset Packaging Tool). Interrotta la supporto per la compilazione di applicazioni Android per le piattaforme ARMv5, MIPS e MIPS64.
Fonte: opennet.ru
