CMake (from the English cross-platform make ) is a cross-platform automation system for building software from source code . CMake does not directly build, it only generates build management files from CMakeLists.txt files:
- Makefile on Unix systems for building with make ;
- project / files ( .vcxproj / .vcproj / .sln ) files in Windows for building using Visual C ++ ;
- Xcode projects on Mac OS X
CMake | |
---|---|
Type of | |
Author | |
Developers | Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf |
Written on | and |
Interface | and |
operating system | |
First edition | |
Latest version | |
License | |
Site | |
Content
Comparing Autotools, Scons and CMake
Quite a long time ago, the Perl and M4- based Autotools system developed in the GNU community is widespread, but requires certain skills for practical use. Existing versions are incompatible with each other in some cases. Autotools is implemented for Unix / Linux platforms.
December 21, 2008, the SCons system (version 1.2.0) using the Python language appeared . On the one hand, this makes the system expandable, but on the other, it complicates its study and use, while reducing its speed . For example, to solve standard problems, you have to use "tricky" code.
CMake is written in C and uses an extremely simple macro language. At the same time, this language is sufficient for most configuration tasks. Separate configuration operations are implemented as plug-ins.
Many well-known free projects (for example, Blender , Wesnoth ) have just begun the transition from Autotools to SCons and CMake, and have not yet made a clear decision in favor of SCons or CMake.
CPack
Starting from version 2.4.2 [5] , CMake includes the automated system for building software packages CPack and the CMake module for interacting with it. The system allows you to create software packages for popular package managers ( DEB , RPM , DMG ), software installation tools ( NSIS for Microsoft Windows ), and build archives ( TGZ , TBZ2 , ZIP , self-extracting TGZ ) [6] .
CMake Software
- Avidemux
- Box2d
- Bullet Physics Library
- Chicken
- Clementine
- CryEngine v
- Cuneiform
- DevIL
- Drishti
- EiskaltDC ++
- Freecad
- GDCM
- Igstk
- Insight Segmentation and Registration Toolkit
- KDE (from version 4)
- Choqok
- Kicad
- LeechCraft
- Llvm
- LMMS
- MuseScore
- Mysql
- Ogre
- OpenSceneGraph
- Paraview
- PCSX2
- Pichi
- PvPGN
- Quantum GIS
- qutIM
- ReactOS
- Scribus
- Slicer
- Stellarium
- SuperTux
- The visualization toolkit
- Opencv
- Urho3d
Notes
- ↑ https://github.com/Kitware/CMake/releases/tag/v3.15.1 - 2019.
- C The cmake Open Source Project on Open Hub: Languages Page - 2006.
- ↑ https://gitlab.kitware.com/cmake/cmake/blob/master/Copyright.txt
- C The cmake Open Source Project on Open Hub: Licenses Page - 2006.
- ↑ CMake: Packaging With CPack - KitwarePublic Unc . cmake.org. The appeal date is September 15, 2016.
- ↑ CMake: CPackPackageGenerators - KitwarePublic Unc . cmake.org. The appeal date is September 16, 2016.
See also
- Automake
- premake
- Scons
- VTK
- Waf
Links
- Official site
- Developers talk about the history of the CMake project // Open Systems Journal, 2007/03
- What is CMake? // Linux Format magazine, # 99 (12), December 2007 (wiki)
- How to use CMake in KDE4
- CMake Articles
- Why did KDE switch to CMake ?