CMake
CMake | |
---|---|
![]() Käyttö komentorivillä. | |
Kehityshistoria | |
Vakaa versio | 3.30.2 ()[1] |
Tiedot | |
Alusta | alustariippumaton |
Ohjelmointikielet | C, C++[2] |
Lisenssi | 3-lauseinen BSD-lisenssi |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta | |
Infobox OK |
CMake on alustariippumaton käännösautomaation työkaluohjelma tietokoneohjelman konfigurointiin lähdekoodista käännettäväksi.[3] CMake ei itse käännä projektia vaan tuottaa tiedostot käännöksen tekemiseen muilla työkaluilla.[3]
Historia
CMaken kehityksen aikana projekteille oli tavallista sisältää Makefile Unix-tyyppisille alustoille ja Visual Studio -projekti Windowsille.[4] Kahden erilaisen käännösjärjestelmän tukeminen oli työlästä ja yksinkertainen tiedoston lisääminen käännökseen oli kömpelöä.[4]
CMaken kehityksessä haluttiin välttää riippuvaisuuksia lisäkirjastoista ja parsereista.[4] CMake suunniteltiin riippuvaiseksi ainoastaan C++-kääntäjästä, joka voitiin olettaa olevan tietokoneessa jossa halutaan kääntää C++-koodia.[4] Tuohon aikaan monien skriptikielien kuten TCL kääntäminen ja asentaminen oli hankalaa.[4]
Käyttökohteet
Työkalua voidaan käyttää useiden projektien käännökseen kuten LLVM ja Qt.[3][5] KDE-projekti päätti vuonna 2006 siirtyä vanhenevasta GNU Autotools -järjestelmästä CMakeen.[6]
Lähteet
- ↑ CMake 3.30.2 available for download, (viitattu ). Tieto on haettu Wikidatasta.
- ↑ https://www.openhub.net/p/cmake
- ↑ a b c Building LLVM with CMake llvm.org. Viitattu 17.9.2020. (englanniksi)
- ↑ a b c d e Bill Hoffman & Kenneth Martin: CMake aosabook.org. Viitattu 17.9.2020. (englanniksi)
- ↑ Build with CMake doc.qt.io. Viitattu 17.9.2020. (englanniksi)
- ↑ Why the KDE project switched to CMake -- and how (continued) lwn.net. 21.6.2006. Viitattu 17.9.2020. (englanniksi)
Aiheesta muualla
- CMake Documentation – viimeisin versio (englanniksi)
Kirjallisuutta
- Martin, Ken & Hoffman, Bill: Mastering CMake. Kitware. ISBN 978-1930934269. (englanniksi)
- Scott, Craig: Professional CMake: A Practical Guide. Crascit. (englanniksi)