Κυκλοφορία εργαλείων κατασκευής Qbs 1.21 και έναρξη δοκιμών Qt 6.3

Ανακοινώθηκε η κυκλοφορία εργαλείων κατασκευής Qbs 1.21. Αυτή είναι η όγδοη κυκλοφορία από τότε που η Qt Company αποχώρησε από την ανάπτυξη του έργου, που προετοιμάστηκε από την κοινότητα που ενδιαφέρεται να συνεχίσει την ανάπτυξη του Qbs. Για τη δημιουργία του Qbs, απαιτείται το Qt μεταξύ των εξαρτήσεων, αν και το ίδιο το Qbs έχει σχεδιαστεί για να οργανώνει τη συναρμολόγηση οποιωνδήποτε έργων. Το Qbs χρησιμοποιεί μια απλοποιημένη έκδοση της γλώσσας QML για να ορίσει σενάρια δημιουργίας έργου, η οποία σας επιτρέπει να ορίσετε αρκετά ευέλικτους κανόνες κατασκευής που μπορούν να συνδέουν εξωτερικές μονάδες, να χρησιμοποιούν συναρτήσεις JavaScript και να δημιουργούν προσαρμοσμένους κανόνες κατασκευής.

Η γλώσσα δέσμης ενεργειών που χρησιμοποιείται στο Qbs είναι προσαρμοσμένη για να αυτοματοποιεί τη δημιουργία και την ανάλυση σεναρίων build από IDE. Επιπλέον, το Qbs δεν δημιουργεί makefiles και το ίδιο, χωρίς μεσάζοντες όπως το βοηθητικό πρόγραμμα make, ελέγχει την εκκίνηση μεταγλωττιστών και συνδέσμων, βελτιστοποιώντας τη διαδικασία δημιουργίας με βάση ένα λεπτομερές γράφημα όλων των εξαρτήσεων. Η παρουσία αρχικών δεδομένων σχετικά με τη δομή και τις εξαρτήσεις στο έργο σας επιτρέπει να παραλληλίσετε αποτελεσματικά την εκτέλεση λειτουργιών σε πολλά νήματα. Για μεγάλα έργα που αποτελούνται από μεγάλο αριθμό αρχείων και υποκαταλόγων, η απόδοση των ανακατασκευών που χρησιμοποιούν Qbs μπορεί να ξεπεράσει την απόδοση αρκετές φορές - η αναδόμηση είναι σχεδόν στιγμιαία και δεν κάνει τον προγραμματιστή να αφιερώνει χρόνο σε αναμονή.

Υπενθυμίζουμε ότι το 2018, η Qt Company αποφάσισε να σταματήσει την ανάπτυξη του Qbs. Το Qbs αναπτύχθηκε ως αντικατάσταση του qmake, αλλά τελικά αποφασίστηκε να χρησιμοποιηθεί το CMake ως το κύριο σύστημα κατασκευής για το Qt μακροπρόθεσμα. Η ανάπτυξη του Qbs συνεχίστηκε πλέον ως ανεξάρτητο έργο που υποστηρίζεται από κοινοτικές δυνάμεις και ενδιαφερόμενους προγραμματιστές. Η υποδομή της εταιρείας Qt συνεχίζει να χρησιμοποιείται για ανάπτυξη.

Βασικές καινοτομίες στο Qbs 1.21:

  • Ο μηχανισμός των παρόχων μονάδων (module generators) έχει επανασχεδιαστεί. Για πλαίσια όπως το Qt και το Boost, είναι πλέον δυνατό να χρησιμοποιηθούν περισσότεροι από ένας πάροχοι, να προσδιορίσετε ποιος πάροχος θα εκτελείται χρησιμοποιώντας τη νέα ιδιότητα qbsModuleProviders και να καθορίσετε μια προτεραιότητα για την επιλογή λειτουργικών μονάδων που δημιουργούνται από διαφορετικούς παρόχους. Για παράδειγμα, μπορείτε να καθορίσετε δύο παρόχους "Qt" και "qbspkgconfig", ο πρώτος από τους οποίους θα προσπαθήσει να χρησιμοποιήσει την εγκατάσταση Qt του χρήστη (μέσω αναζήτησης qmake) και εάν δεν βρεθεί τέτοια εγκατάσταση, ο δεύτερος πάροχος θα προσπαθήσει να χρησιμοποιήσει το Qt που παρέχεται από το σύστημα (μέσω κλήσης στο pkg-config) : CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Προστέθηκε ο πάροχος "qbspkgconfig", ο οποίος αντικατέστησε τον πάροχο λειτουργικής μονάδας "εφεδρική", ο οποίος προσπάθησε να δημιουργήσει μια λειτουργική μονάδα χρησιμοποιώντας το pkg-config, εάν η λειτουργική μονάδα που ζητήθηκε δεν είχε δημιουργηθεί από άλλους παρόχους. Σε αντίθεση με το "fallback", το "qbspkgconfig" αντί να καλεί το βοηθητικό πρόγραμμα pkg-config χρησιμοποιεί μια ενσωματωμένη βιβλιοθήκη C++ για την απευθείας ανάγνωση αρχείων ".pc", η οποία επιταχύνει την εργασία και παρέχει πρόσθετες πληροφορίες σχετικά με εξαρτήσεις πακέτου που δεν είναι διαθέσιμες κατά την κλήση του pkg-config βοηθητικό πρόγραμμα.
  • Προστέθηκε υποστήριξη για την προδιαγραφή C++23, η οποία καθορίζει το μελλοντικό πρότυπο C++.
  • Προστέθηκε υποστήριξη για την αρχιτεκτονική Elbrus E2K για το κιτ εργαλείων GCC.
  • Για την πλατφόρμα Android, η ιδιότητα Android.ndk.buildId έχει προστεθεί για να αντικαταστήσει την προεπιλεγμένη τιμή για τη σημαία σύνδεσης "--build-id".
  • Οι μονάδες capnproto και protobuf υλοποιούν τη δυνατότητα χρήσης χρόνου εκτέλεσης που παρέχεται από τον πάροχο qbspkgconfig.
  • Επιλύθηκαν προβλήματα με την παρακολούθηση αλλαγών σε αρχεία πηγής στο FreeBSD λόγω της πτώσης χιλιοστών του δευτερολέπτου κατά την εκτίμηση των χρόνων τροποποίησης αρχείων.
  • Προστέθηκε η ιδιότητα ConanfileProbe.verbose για να διευκολυνθεί ο εντοπισμός σφαλμάτων σε έργα που χρησιμοποιούν τη διαχείριση πακέτων Conan.

Επιπλέον, μπορούμε να σημειώσουμε την έναρξη της δοκιμής alpha του πλαισίου Qt 6.3, το οποίο υλοποιεί μια νέα ενότητα "Qt Language Server" με υποστήριξη για τα πρωτόκολλα Language Server και JsonRpc 2.0, ένα μεγάλο μέρος νέων λειτουργιών έχει προστεθεί στο Qt Core λειτουργική μονάδα και το MessageDialog τύπου QML έχει εφαρμοστεί στη μονάδα Qt Quick Dialogs Για να χρησιμοποιήσετε τα παράθυρα διαλόγου που παρέχονται από την πλατφόρμα, ένας σύνθετος διακομιστής Qt Shell και ένα API για τη δημιουργία των δικών σας προσαρμοσμένων επεκτάσεων φλοιού έχουν προστεθεί στη λειτουργική μονάδα Qt Wayland Compositor .

Η ενότητα Qt QML προσφέρει μια υλοποίηση του μεταγλωττιστή qmltc (μεταγλωττιστής τύπου QML), ο οποίος σας επιτρέπει να μεταγλωττίσετε δομές αντικειμένων QML σε κλάσεις στη C++. Για τους εμπορικούς χρήστες του Qt 6.3, ξεκίνησε η δοκιμή του προϊόντος Qt Quick Compiler, το οποίο, εκτός από τον προαναφερθέντα μεταγλωττιστή τύπου QML, περιλαμβάνει τον μεταγλωττιστή σεναρίου QML, ο οποίος σας επιτρέπει να μεταγλωττίσετε συναρτήσεις και εκφράσεις QML σε κώδικα C++. Σημειώνεται ότι η χρήση του Qt Quick Compiler θα φέρει την απόδοση των προγραμμάτων που βασίζονται σε QML πιο κοντά στα εγγενή προγράμματα· ειδικότερα, κατά τη μεταγλώττιση επεκτάσεων, υπάρχει μείωση του χρόνου εκκίνησης και εκτέλεσης κατά περίπου 30% σε σύγκριση με τη χρήση της ερμηνευμένης έκδοσης .

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο