Die endgültige Version der Qbs-Build-Tools wurde veröffentlicht

Qt-Unternehmen опубликовала Montagewerkzeuge Qbs 1.13 (Qt Build Suite). Dies ist die neueste Version von Qbs der Qt Company. Erinnern wir uns daran, was früher passiert ist akzeptiert Entscheidung, die Entwicklung von Qbs einzustellen. Qbs wurde als Ersatz für qmake entwickelt, letztendlich entschied man sich jedoch, CMake langfristig als Haupt-Build-System für Qt zu verwenden.

Es wird erwartet, dass in naher Zukunft ein unabhängiges Projekt geschaffen wird, um die Entwicklung von Qbs durch die Community fortzusetzen, dessen Schicksal vom Interesse unabhängiger Entwickler an dem betreffenden Montagesystem abhängt. Qt Company stellt die Arbeit an Qbs ein, da zusätzliche Investitionen und hohe Kosten für die Förderung von Qbs erforderlich sind.

Erinnern wir uns daran, dass zum Erstellen von Qbs Qt als Abhängigkeit erforderlich ist, obwohl Qbs selbst darauf ausgelegt ist, die Zusammenstellung beliebiger Projekte zu organisieren. Qbs verwendet eine vereinfachte Version der QML-Sprache, um Projekt-Build-Skripte zu definieren, die es Ihnen ermöglicht, ziemlich flexible Build-Regeln zu definieren, die externe Module verbinden, JavaScript-Funktionen verwenden und benutzerdefinierte Build-Regeln erstellen können.
Qbs generiert keine Makefiles und steuert unabhängig den Start von Compilern und Linkern, wodurch der Build-Prozess basierend auf einem detaillierten Diagramm aller Abhängigkeiten optimiert wird. Durch das Vorhandensein erster Daten über die Struktur und Abhängigkeiten im Projekt können Sie die Ausführung von Vorgängen in mehreren Threads effektiv parallelisieren.

Wichtige Neuerungen in Qbs 1.13:

  • Es wurde die Möglichkeit hinzugefügt, pkg-config-Module in Projekten mit demselben Abhängigkeitsverarbeitungsmechanismus zu verwenden, der für Qbs-Module verwendet wird. Wenn das System beispielsweise über ein Paket zum Erstellen von OpenSSL basierend auf pkg-config verfügt, fügen Sie zur Verwendung in einem Qbs-Projekt einfach „Depends { name: „openssl“ }“ hinzu;
  • Automatische Erkennung verfügbarer Qt-Module implementiert. Entwickler müssen nicht mehr mit dem Befehl setup-qt ein Profil mit Modulpfaden erstellen; alle in Abhängigkeiten angegebenen Qt-Module werden automatisch konfiguriert;
  • Es wurden Tools hinzugefügt, um die Anzahl der parallel ausgeführten Montageaufgaben auf der Ebene einzelner Befehle zu steuern. Das Verknüpfen verursacht beispielsweise eine große E/A-Last und verbraucht viel RAM, sodass der Linker andere Starteinstellungen benötigt als der Compiler. Separate Einstellungen können nun mit dem Befehl „qbs –job-limits linker:2,compiler:8“ vorgenommen werden;
  • Es wurden Änderungen an der Skriptsprache vorgenommen. Regeln können jetzt definiert werden, ohne eine Stub-Datei für die Ausgabe anzugeben, und es ist nicht notwendig, die Direktive „import qbs“ am Anfang von Projektdateien zu verwenden. Den Elementen Application, DynamicLibrary und StaticLibrary wurden neue install- und installDir-Eigenschaften hinzugefügt, um die Installation ausführbarer Dateien zu vereinfachen.
  • Unterstützung für rekursives Scannen von Linker-Skripten hinzugefügt
    GNU-Linker;

  • Für C++ wurde die Eigenschaft cpp.linkerVariant implementiert, um die Verwendung der Linker ld.gold, ld.bfd oder lld zu erzwingen;
  • Qt führt die Eigenschaft Qt.core.enableBigResources zum Erstellen großer Qt-Ressourcen ein
  • Anstelle des veralteten AndroidApk-Elements wird vorgeschlagen, den generischen Anwendungstyp zu verwenden;
  • Ein Modul zum Erstellen von Tests basierend auf Autotest hinzugefügt;
  • Texttemplate-Modul mit ähnlichen Funktionen wie QMAKE_SUBSTITUTES in qmake hinzugefügt;
  • Erste Unterstützung für das Protocol Buffers-Format für C++ und Objective-C hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen