Rilascio degli strumenti di compilazione Qbs 1.21 e inizio dei test di Qt 6.3

È stato annunciato il rilascio degli strumenti di compilazione Qbs 1.21. Si tratta dell'ottavo rilascio da quando la società Qt ha abbandonato lo sviluppo del progetto, preparato dalla comunità interessata a continuare lo sviluppo di Qbs. Per costruire Qbs, è necessario Qt tra le dipendenze, 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.

Il linguaggio di scripting utilizzato in Qbs è adattato per automatizzare la generazione e l'analisi degli script di build da parte degli IDE. Inoltre, Qbs non genera makefile e, senza intermediari come l'utility make, controlla 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. Per progetti di grandi dimensioni costituiti da un gran numero di file e sottodirectory, le prestazioni delle ricostruzioni utilizzando Qbs possono superare make di diverse volte: la ricostruzione è quasi istantanea e non richiede allo sviluppatore di perdere tempo in attesa.

Ricordiamo che nel 2018 la società Qt ha deciso 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. Lo sviluppo di Qbs è ora continuato come progetto indipendente supportato dalle forze della comunità e dagli sviluppatori interessati. L'infrastruttura Qt Company continua a essere utilizzata per lo sviluppo.

Principali innovazioni in Qbs 1.21:

  • Il meccanismo dei fornitori di moduli (generatori di moduli) è stato riprogettato. Per framework come Qt e Boost, è ora possibile utilizzare più di un provider, specificare quale provider eseguire utilizzando la nuova proprietà qbsModuleProviders e specificare una priorità per la selezione dei moduli generati da diversi provider. Ad esempio, puoi specificare due provider "Qt" e "qbspkgconfig", il primo dei quali proverà a utilizzare l'installazione Qt dell'utente (tramite una ricerca qmake) e se tale installazione non viene trovata, il secondo provider proverà a utilizzare il Qt fornito dal sistema (tramite una chiamata a pkg-config): CppApplication { Dipende { nome: "Qt.core" } file: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Aggiunto il provider "qbspkgconfig", che ha sostituito il provider del modulo "fallback", che tentava di generare un modulo utilizzando pkg-config se il modulo richiesto non era generato da altri provider. A differenza di "fallback", "qbspkgconfig" invece di chiamare l'utilità pkg-config utilizza una libreria C++ incorporata per leggere direttamente i file ".pc", che consente di accelerare il lavoro e ottenere informazioni aggiuntive sulle dipendenze dei pacchetti che non sono disponibili durante la chiamata l'utilità pkg-config.
  • Aggiunto il supporto per la specifica C++23, che definisce il futuro standard C++.
  • Aggiunto il supporto per l'architettura Elbrus E2K per il toolkit GCC.
  • Per la piattaforma Android, la proprietà Android.ndk.buildId è stata aggiunta per sovrascrivere il valore predefinito per il flag del linker "--build-id".
  • I moduli capnproto e protobuf implementano la capacità di utilizzare i runtime forniti dal provider qbspkgconfig.
  • Risolti i problemi con il tracciamento delle modifiche nei file sorgente su FreeBSD a causa della perdita di millisecondi durante la stima dei tempi di modifica dei file.
  • Aggiunta la proprietà ConanfileProbe.verbose per semplificare il debug di progetti che utilizzano il gestore pacchetti Conan.

Inoltre, possiamo notare l'inizio dell'alpha testing del framework Qt 6.3, che implementa un nuovo modulo “Qt Language Server” con supporto per i protocolli Language Server e JsonRpc 2.0, gran parte delle nuove funzioni sono state aggiunte al Qt Core e il tipo QML MessageDialog è stato implementato nel modulo Qt Quick Dialogs Per utilizzare le finestre di dialogo fornite dalla piattaforma, un server Qt Shell composito e un'API per creare le proprie estensioni della shell utente sono stati aggiunti al modulo Qt Wayland Compositor .

Il modulo Qt QML offre un'implementazione del compilatore qmltc (compilatore di tipo QML), che consente di compilare strutture di oggetti QML in classi in C++. Per gli utenti commerciali di Qt 6.3 è iniziato il test del prodotto Qt Quick Compiler che, oltre al già citato QML Type Compiler, include il QML Script Compiler, che consente di compilare funzioni ed espressioni QML in codice C++. Da notare che l'utilizzo di Qt Quick Compiler avvicinerà le prestazioni dei programmi basati su QML a quelle dei programmi nativi; in particolare, durante la compilazione delle estensioni, si ha una riduzione dei tempi di avvio ed esecuzione di circa il 30% rispetto all'utilizzo della versione interpretata .

Fonte: opennet.ru

Aggiungi un commento