Unser Projekt wurde ziemlich groß und unser Build-System skaliert nicht mehr. Wir machen Cross-Plattform-Entwicklung auf Linux-Maschinen. Wir haben zu viele Plattformen, um gegen Optionen zu bauen und noch mehr zu bauen. Wir glauben, dass wir unsere Makefile-basierte Build-Umgebung aktualisieren müssen.linux build system tool
Dies sind die Anforderungen (in einer idealen Welt):
- Schnell (also keine libtool)
- Kann parallel baut
- Kreuz kompilieren freundliche
- ccache Integration inkrementelle
- Does baut auf und kann einen Kurzschluss verursachen, wenn bestimmte Bedingungen erfüllt sind (Kurzschluss, wenn sich die Optionen a, b, c nicht geändert haben, wenn sie neu erstellt wurden)
- Leicht skriptfähig (Python-Integration wäre perfekt)
- Benutzerfreundliche Syntax
- Verteiltes System. Module können separat voneinander entwickelt werden
- Kann Bibliotheken von Drittanbietern erstellen (die autotools, cmake .. verwenden)
- Kann Abhängigkeiten zwischen Modulen verfolgen (aber flexibel genug, sodass Module durch alternative externe Module ersetzt werden können).
- Einbaugerät Testunterstützung
- Große Binärdateien getrennt von der Versionskontrolle gespeichert und heruntergeladen, wenn
- Spur von Open Source halten benötigt werden können Lizenzen
- git Integration
Sind Ihnen irgendwelche Werkzeuge (oder eine Gruppe von Werkzeugen) bewusst, die (mindestens einige) dieser Anforderungen erfüllen? Zur Zeit lehne ich mich an gyp + ninja. Aber Syntax ist nicht sehr freundlich und es gibt keine Dokumentation. Es ist also ein harter Verkauf.
Warum Libtool sofort ablehnen? Haben Sie moderne Versionen bewertet und bestätigt, dass diese nicht ausreichen? –
Vor etwa 6 Monaten habe ich eines meiner Projekte (~ 4K Dateien) nach gyp verschoben. Es wurde zuvor auf configure/libtool erstellt. Die Bauzeit ging von Mitte 20 bis zu hohen Zehnern (in Minuten) zurück. Wenn im letzten Jahr keine drastischen Verbesserungen vorgenommen wurden, stehe ich hinter meiner Aussage. BTW das Zeit-Delta war niedriger auf meinem anderen Server, der SSDs hat. –