Unter Linux ist autotools der Standard, wenn es darum geht, Anwendungen aus einem Source-Tarball zu kompilieren. Weit weniger bekannt ist CMake, das allerdings einige Vorteile bietet.
CMake selbst ist eigentlich kein Buildsystem. Es erstellt lediglich für andere Buildsysteme Projekt-Dateien. Unterstützt werden dabei Makefiles, Visual Studio, Xcode und etliche mehr. Wer z.B. primär autotools verwendet, aber parellel dazu Visual Studio-Projektdateien anbietet, spart sich so, diese bei Änderungen nachzupflegen.
Bei CMake funktioniert “make -j” über Verzeichnisgrenzen hinweg, wodurch die Buildzeit verkürzt wird. Der Effekt ist besonders spürbar, wenn das Projekt viele Unterverzeichnisse mit jeweils nur wenigen Dateien beinhaltet. Mit autotools geht “make” jedes Verzeichnis einzeln durch und wartet, bis das jeweilige Verzeichnis fertig-gebuildet ist.
CMake liefert für viele Libraries eigene Scripts mit, die dabei helfen, diese in das eigene Projekt zu integrieren. Für autotools gibt es zwar etwas ähnliches (GNU Autoconf Archive), aber die Qualität dieser Scripts lässt zu wünschen übrig. Manche der Scripts funktionieren z.B. mit den Library-Pfaden von neueren Debian-Versionen (Stichwort: Multiarch) nicht mehr.
Nicht zuletzt ist die Syntax von CMake deutlich eingängiger und einfacher als die übliche Mischung aus Shell-Script-Schnipseln und M4-Makros bei autotools.
Als erste Anlaufstelle für autotools-geplagte Entwickler bietet sich die CMake-Dokumentation an, in der detailliert alle Befehle erklärt werden.
CMake als Buildsystem
Kritisch: Fehler in Elasticsearch mit JDK22 kann einen sofortigen Stop des Dienstes bewirken
Update Seit gestern Abend steht das Release 8.13.2 mit dem BugFix zur Verfügung. Kritischer Fehler Der Elasticsearch Dienst kann ohne Vorankündigung stoppen. Diese liegt an einem Fehler mit JDK 22. In der Regel setzt man Elasticsearch mit der "Bundled" Version ein....
End of Life von CentOS Linux 7 – Was bedeutet das für mich?
Der ein oder andere Admin wird sich vermutlich schon lange den 30. Juni 2024 im Kalender vorgemerkt haben, denn dann ist für CentOS Linux 7 das "End of Life" erreicht. Aber auch Benutzer von Red Hat Enterprise Linux 7 sollten sich Gedanken machen, denn auch dieses...
Kibana Sicherheits-Updates: CVSS:Critical
Und täglich grüßt das Murmeltier. Nein nicht ganz. Heute ist es aus der Elastic Stack Werkzeugkiste Kibana, für das es ein wichtiges Sicherheits-Update gibt. Es besteht auf jeden Fall Handlungsbedarf! IMHO auch wenn ihr die "Reporting" Funktion deaktiviert habt. Der...
0 Comments