CMake
CMake (cross-platform make) ist ein plattformübergreifendes Programmierwerkzeug für die Entwicklung und Erstellung von Software.
CMake
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Bill Hoffman, Ken Martin, Brad King, Dave Cole, Alexander Neundorf, Clinton Stimpson[1] |
Erscheinungsjahr | 2000[2] |
Aktuelle Version | 3.31.5[3] (28. Januar 2025) |
Aktuelle Vorabversion | 3.21.0-rc1[4][5] (23. Juni 2021) |
Betriebssystem | Unix-Derivate (Linux, macOS), Windows |
Programmiersprache | C, C++[6] |
Kategorie | Programmierwerkzeug |
Lizenz | BSD-artige Lizenz |
deutschsprachig | nein |
cmake.org |
CMake fungiert als plattformübergreifender Metabuild-Generator für eigentliche Buildgeneratoren – wie beispielsweise Make oder Nmake. Dies bedeutet, dass in CMake-Scripts plattformübergreifende Build-Anweisungen geschrieben werden können, die dann wiederum von CMake verwendet werden um die eigentlichen – plattformspezifischen – Buildscripte zu generieren.
Geschichte
BearbeitenCMake wurde als Teil des Visible Human Project für das Insight Segmentation and Registration Toolkit erstellt.
Bill Hoffman von Kitware nutzte neue und eigene Ideen vom pcmaker (einem vorherigen Buildsystem) mit Grundfunktionalitäten des GNU Build Systems, um Mitte 2000 die erste Version zu erstellen, die dann bis Anfang 2001 weiterentwickelt wurde. Danach entstanden viele Verbesserungen durch andere Entwickler, die CMake für ihre eigenen Projekte verwenden wollten.
Funktionen
BearbeitenMit CMake werden aus Skriptdateien (CMakeLists.txt) Makefiles und Projekte für viele integrierte Entwicklungsumgebungen und Compiler erzeugt.
Die Verarbeitungskette ist dabei etwa folgende:
CMakeLists.txt Cmake Makefile Make/Nmake/... Compiler, Linker Programm/Programmbibliothek
Das Ausführen des Cmake-Programms kann dabei alle notwendigen Schritte der Verarbeitungskette anstoßen.
Unterstützt werden:
- Borland Makefiles
- Code::Blocks
- GCC
- MinGW
- Nmake
- MSYS
- Unix Makefiles
- Eclipse CDT4
- Ninja
- Visual Studio
- Watcom WMake Dateien
- Xcode
sowie die Nachfolger von Mingw und MSYS, Mingw-w64 und MSYS2.
CMake überprüft dabei automatisch die Abhängigkeiten für C, C++, Fortran und Java und unterstützt parallele Builds.
Es werden viele Bibliotheken, wie z. B. SWIG, Boost und Qt durch die CMake-Skriptsprache unterstützt. Ab der Version 2.6 wird auch Cross Kompilation und cross-platform build unterstützt. Integriert sind Tools für Tests und release: DART, CDash, CTest und CPack.
Mit CPack ist es möglich, Installationspakete in folgenden Formaten zu erstellen:
- Nullsoft Scriptable Install System (NSIS)
- Windows Installer XML (MSI)
- Self extracting Tar GZip compression (STGZ)
- Tar bzip2 compression (TBZ2)
- Tar gzip compression (TGZ)
- Tar Compress compression (TZ)
- ZIP file format (ZIP)
- Debian-Pakete (DEB)
- RPM Package Manager (RPM)
Alternativen
Bearbeiten- GNU Build System (Autotools)
- Meson
- SCons
- qmake
- Perforce Jam
Einzelnachweise
Bearbeiten- ↑ Participants | CMake. Abgerufen am 3. April 2022 (amerikanisches Englisch).
- ↑ About CMake. (englisch, abgerufen am 10. Oktober 2019).
- ↑ CMake 3.31.5 available for download. 28. Januar 2025 (englisch, abgerufen am 10. Februar 2025).
- ↑ CMake 3.21.0-rc1 is ready for testing. 23. Juni 2021.
- ↑ gitlab.kitware.com.
- ↑ CMake Quellcode. (amerikanisches Englisch).