GN ist ein Metadaten-getriebenes Build-System, das von Google entwickelt wurde. Es wird hauptsächlich für das Chromium-Projekt und andere große Projekte verwendet. GN ist darauf ausgelegt, schnell, einfach zu erlernen und zu verwenden zu sein. Es generiert Ninja-Dateien, die dann vom Ninja-Build-Tool verarbeitet werden.
Hier sind einige wichtige Aspekte von GN:
Zweck: GN dient dazu, den Build-Prozess für große Softwareprojekte zu vereinfachen und zu beschleunigen. Es ist ein Generator für Build-Dateien, die von einem Build-System wie Ninja verwendet werden. Mehr Informationen über den <a href="https://de.wikiwhat.page/kavramlar/Build%20Prozess">Build Prozess</a>.
Sprache: Die GN-Sprache ist absichtlich einfach gehalten. Sie ist deklarativ und verwendet eine Syntax, die an Python erinnert, aber deutlich restriktiver ist. Dies trägt zur Lesbarkeit und Wartbarkeit der Build-Dateien bei.
Metadaten-getrieben: GN verwendet Metadaten, um zu beschreiben, wie die Software gebaut werden soll. Diese Metadaten werden in .gn
-Dateien und BUILD.gn
-Dateien gespeichert.
BUILD.gn
-Dateien: Diese Dateien enthalten die Build-Regeln und Abhängigkeiten für ein bestimmtes Verzeichnis. Jedes Verzeichnis in einem GN-Projekt kann eine BUILD.gn
-Datei haben.
*.gn
-Dateien: Diese Dateien definieren globale Build-Konfigurationen und Einstellungen für das gesamte Projekt. Eine BUILDCONFIG.gn
-Datei ist ein wichtiger Bestandteil.
ninja
-Dateien: GN generiert ninja
-Dateien aus den BUILD.gn
-Dateien. Ninja ist ein kleines Build-System, das sehr schnell ist und parallelisiert Build-Prozesse.
Hauptkonzepte: Zu den Hauptkonzepten in GN gehören:
Vorteile:
Verwendung: Um GN zu verwenden, müssen Sie die BUILD.gn
-Dateien erstellen, die beschreiben, wie Ihre Software gebaut werden soll. Dann führen Sie GN aus, um die ninja
-Dateien zu generieren, und schließlich führen Sie Ninja aus, um die Software zu bauen.
gn gen
Befehl: Dieser Befehl wird verwendet, um die ninja
-Dateien aus den BUILD.gn
-Dateien zu generieren. Siehe mehr über den <a href="https://de.wikiwhat.page/kavramlar/Befehl">Befehl</a>.
Integration mit anderen Tools: GN lässt sich gut in andere Tools und Build-Systeme integrieren.
Beispiel:
executable("my_program") {
sources = [
"main.cc",
"foo.cc",
]
deps = [
"//mylib:mylib",
]
}
Dieses Beispiel definiert ein ausführbares Target namens my_program
, das aus den Quellcodedateien main.cc
und foo.cc
gebaut wird und von dem Target mylib
im Verzeichnis mylib
abhängt. Informationen über <a href="https://de.wikiwhat.page/kavramlar/Quellcodedateien">Quellcodedateien</a>.
Zusammenfassend lässt sich sagen, dass GN ein leistungsstarkes und effizientes Build-System ist, das sich gut für große Softwareprojekte eignet. Seine einfache Sprache, seine Geschwindigkeit und seine Skalierbarkeit machen es zu einer beliebten Wahl für Projekte wie Chromium.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page