Seite wählen

CMake als Buildsystem

von | Nov 7, 2013 | Windows, Technology, Development, Mac, Linux

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.

0 Kommentare

Trackbacks/Pingbacks

  1. Weekly Snap: CMake, Rsnapshot & MyPhoneExplorer › NETWAYS Blog - […] close, Gunnar put the case forward for using CMake as a build system and Thomas offered his tip for…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Windows | Technology | Development | Mac | Linux

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...